目录
属性重写
案例演示
多态练习
练习1
练习2
属性重写
属性没有重写之说,属性的值看编译类型。
instanceOf 比较操作符,用于判断对象的运行类型是否为某类型或者某类型的子类。
案例演示
父类base,有一个count属性
子类sub,也有一个属性count
这里base.count的值应该为10,因为属性的值要看编译类型,base的编译类型为Base,运行类型为Sub。
同理,这里的值为20。
instanceof,左边的运行类型是右边那个类或者是右边那个类的子类子类就为true。
多态练习
练习1
倒数第二行那个是错误的,objPri的编译类型为Object,运行类型为Integer,而不是String,所以只能向下转型为Integer,而不能向下转型为String。
练习2
访问值看编译类型,访问函数用运行类型。
Base b = s后,b和s都指向同一个Sub,所以它们两个存的地址相同,所以b==s值为true。
访问b.count时,因为count为属性,看编译类型,b的编译类型为Base,所以值为10。
使用b的display方法时,由于访问的是方法,看运行类型,b的运行类型为Sub,所以值为20。