这样说吧,把子类对象给父类赋值这个语句的过程是这样的。
1.A a :先产生以个A类的引用,他是一个虚的引用,因为还没有赋值,所以a就是个傀儡,因为生命了类型为A,a变量就像被分配了一个能访问A类对象的引用。
2.new B():创建的是对象,这个相当于生成乙个B类的引用,他可以引用B类中的所有东西
3.a = new B():第三部是才是把B类的引用赋给A类,由于B类是A类的子类,所以才可以这么赋值。
这样赋值之后a可以调用A类的所有方法和属性,虽然给他赋的是B类的引用,不过由于前面限定了A类,所以a只能调用B类中覆盖了A类方法的方法。
这叫做上转型对象,也就是父类声明,子类实例化对象,但a调用被子类重写的方法的时候调用的是被子类重写过的,还可以调用A类中剩下未被重写的方法,希望对你的问题有所帮助,谢谢!!!
父类的引用指向子类,向上转型