父类对象赋给子类对象与子类对象赋给父类对象

Python015

父类对象赋给子类对象与子类对象赋给父类对象,第1张

子类对象赋给父类对象,这时候父类的COPY赋值操作符只负责处理子类对象中父类成分的COPY工作。

把父类对象赋给子类对象,一般情况下是不能成立的。除非你在子类中定义一个以父类对象为形参的子类构造函数,其实这一种变形的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的实例,转换失败。