Ragazzi non riesco proprio a capire perchè questo cast esplicito dia errore a run-time,dovrebbe andare bene in quanto promuovo una classe ad una classe figlia.


codice:
class Point { 
	int x, y; 
}

class ColoredPoint extends Point {
	int color;
	public void setColor(int c) { 
		color = c;
		
	}
}

public class Casting {
	public static void main(String[] args) {
		Point p = new Point();
		Point p2 = new ColoredPoint();
		ColoredPoint cp = new ColoredPoint();
		cp = (ColoredPoint)p; 		//Errore a run-time


 }
}