java 多态 为什么属性不支持

java 多态 为什么属性不支持

我们的属性不具有多态特性。我们直接调用属性值,那么出来的就是父类的属性值,为什么呢?

这个就是静态绑定和动态绑定的问题了

编译期间的绑定就是静态绑定,运行期间的绑定就是动态绑定,java为了实现多态的这个机制,选择让方法在运行期间绑定对应对象所对应实际类型,选择让属性在编译期间绑定其所对应实际类型。那么这个问题不就解决了?

编译期间时,肯定是父类的类型,如果直接调用属性,故名思议则是父类所对应的属性值。而方法则是在运行期间绑定的,这个对象实际上实际是子类对象,那么运行期间就肯定是子类类型,故方法是子类的方法,而在方法中调用的值是子类的值就更简单了,我们调用子类的值时,实际上简写了this.属性,而this却是指当前对象。当前对象只有被实例化才会有对象,那么肯定是运行期间,故在方法里面调用属性值是子类的值。

相关推荐

如何优雅的追番
彩票365

如何优雅的追番

📅 12-02 👁️ 6740
从怀孕到生过程要多久
彩票365

从怀孕到生过程要多久

📅 12-01 👁️ 3932
梦幻西游天罡星挑战攻略!天寿、天究、天富、天闲的主流击杀方法