java_类向上转型以及动态绑定机制(多态)

140 阅读1分钟

语法:父类类型 变量名=new 子类类型();

特点:编译类型看左边,运行类型看右边

可以调用父类的所有成员,但是private的字段和方法等等都无法调用(要遵守访问权限)

不能调用 new 子类类型() 的子类类型特有的方法(父类没有,子类有)

最终虽然调用的是父类的方法,但是运行效果看子类重写后的具体实现!

就是先去子类看看有没有此方法,如果没有的话,才去父类看。

动态绑定机制

方法有动态绑定机制,属性或者字段没有动态绑定机制

当调用对象方法的时候,方法会和该运行类型绑定,简单来说就是每次调用方法,都会去看运行类型里面有没有这个方法,没有的话才会去看父类的。

当调用对象属性的时候,属性不会和运行类型绑定,简单来说就是每次调用属性,不会去看运行类型有没有这个属性,只要在哪里声明这个属性,就在哪里调用。