设有父类Father,子类Son,测试类Test
1.Son son = new Father(); 不成立
2.Father father = new Son(); father将无法使用子类独有的属性和方法,只能通过类型转换 Son son = (Son)father 或 ((Son)father).属性/方法;
3.Son son = new Son(); 若将son赋值给一个Father类引用(假设引用名是father),那么这个引用只能使用自己本身所含有的类和方法,而无法使用子类中的,可通过((Son)father).方法/属性 的方式来调用
4.在第三方测试类Test中无法使用父类和子类的private属性和方法
总结:总而言之就是一个父类引用指向子类对象时,无法使用子类的一些方法和属性,必须通过类型转换。
原文:https://www.cnblogs.com/librel/p/14589010.html