java的动态绑定机制@TOC
java的动态绑定机制//a 的编译类型 A, 运行类型 B
A a = new B();//向上转型
规则:
- 属性没有动态绑定机制,在那个类里就调用哪个属性
- 调用方法时会和运行时类型绑定即B类
- 动态绑定机制不影响继承机制的作用,即子类没有的属性和方法会去父类中找
调用方法时会和运行时类型绑定即B类
public class DynamicBinding { public static void main(String[] args) { //a 的编译类型 A, 运行类型 B Aa = new B();//向上转型 System.out.println(a.sum());//?40 -> 30 System.out.println(a.sum1());//?30-> 20 } } class A{//父类 public int i = 10; //动态绑定机制: public int sum() {//父类 sum() return getI() + 10;//20 + 10 } public int sum1() {//父类 sum1() return i + 10;//10 + 10 } public int getI() {//父类 getI return i; } } class B extends A{//子类 public int i = 20; // public int sum() { // return i + 20; // } public int getI() {//子类 getI() return i; } // public int sum1() { // return i + 10; // } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)