把父类对象赋给子类对象,一般情况下是不能成立的。除非你在子类中定义一个以父类对象为形参的子类构造函数,其实这一种变形的COPY构造函数,它还可以有其他参数用于构造子类对象之用。在此构造函数中构造一个临时性的子类对象,然后再调用父类COPY赋值操作符完成赋值操作。
或者,你在子类中定义一个参数是父类对象引用的COPY赋值操作符,把父类对象赋给子类对象的父类成分就OK了,至于说这时候子类对象的子类成分该怎么办,你自己妥善处理呗。
在main方法中用父类实例化子类即可(向下转型——多态)Tractor tra=null
tra=new Vehicel()
tra.plugh()
tra.driveAt(50)
代码要写在代码块、方法里面。class c{
public static void main(String args[]){
a a1, a2=new a()
b b1.b2=new b()
b1=(b)a2
System.out.println(b1.b)
}
}
但还不能用的,因为
b1=(b)a2 /// a2本来是a的实例,转换失败。