• 反射与super之间的问题,萌新求大佬指点
  • java
    5.00元

创建类A

public class A {
   public void func1() {
       System.out.println(this.getClass().getName()+"---func1");
   }
}

创建类B

public class B extends A{
   @Override
   public void func1() {
       super.func1();
       System.out.println(this.getClass().getName()+"---func1");
   }
}

在调用时:

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

为何结果为:

cn.java.oop.B---func1
cn.java.oop.B---func1

而不是

cn.java.oop.A---func1
cn.java.oop.B---func1

感谢Sanjay yww与毕小宝
再测了把-》

public class Test {
   public static void main(String[] args) {
       A a = new B();
//      a.func1();
       System.out.println(a.getClass().getName());
   }
}

结果为:

cn.java.oop.B


  • 就几件    2019-12-11 10:21:22
  • 阅读 762    收藏 0    回答 1
  • 邀请
  • 收藏
  • 分享
发送
登录 后发表评论
  • 51testing软件测试圈微信