现在的位置: 首页 > 综合 > 正文

动态绑定的例子

2018年02月04日 ⁄ 综合 ⁄ 共 585字 ⁄ 字号 评论关闭

import java.util.ArrayList;
import java.util.List;

public class Test2 {
  public static void main(String[] args) {
  A a = new B();
  a.printA(); 
}

}
class A{
  void printA(){
  System.out.println("class A");
  method1();
  }
  private void
method1(){

  System.out.println("Class A 's method1");
  }
}
class B extends A{   
  void method1(){
  System.out.println("Class B 's method1");
  }
    
}

情况一

class A

Class A 's method1

情况二

当我把classA中方法void method1()的private除掉后结果就是
class A

Class B 's method1

首先,肯定都是class A,因为只有A类中才会有printA的方法。

其次,在printA中的method1方法,类型是A,实例是B,第一它要符合A类型
,才能有多态的情况。

当为private时那么它是A类型,没有发生重写,因此调用的是
 Class A 's method1

当去掉private时那么它是A类型,发生了重写,因此是动态绑定



抱歉!评论已关闭.