Parent p2 = new Child();
即:
Child c1 = new Child(); //新建Child对象,并把此对象的引用赋给c1
Parent p2 = (Parent)c1; //把c1"窄化"赋给p2,p2、c1都引用同一个对象(Child)
即:
Child c1 = new Child(); //新建Child对象,并把此对象的引用赋给c1
Parent p2 = (Parent)c1; //把c1"窄化"赋给p2,p2、c1都引用同一个对象(Child)
你说的问题是多态,这是面向对象的基本,建议你还是先看看书吧,你是不是刚学编程啊!!
而上一句则可以使用Parent子类的各项内容。因为他(新加的内容)声明使用了。
JAVA里的类使用时,要用NEW方法分配内存的。
实际上,Parent p2 = new Child();一句相当于
Child c = new Child();
Parent p2 = (Parent)c;