A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public class Demo {
  2.        
  3.         public static void main(String[] args) {
  4.                 B b = new B();
  5.                 b.show();
  6.                 b.print1();
  7.         }

  8. }

  9. class A{
  10.         String s = "A";
  11.         void show(){
  12.                 System.out.println(s);
  13.         }
  14.         void print1(){
  15.                 System.out.println(print2());
  16.         }
  17.         int print2(){
  18.                 return 123;
  19.         }
  20. }

  21. class B extends A{
  22.         String s = "B";
  23.         int print2(){
  24.                 return 456;
  25.         }
  26. }
复制代码

2 个回复

倒序浏览
b.show()结果为 A
b.print1()结果为 456
有点疑惑  为什么b.show()结果不为B   又为什么b.print1()结果不为123
回复 使用道具 举报
KyluS 发表于 2015-11-27 23:02
b.show()结果为 A
b.print1()结果为 456
有点疑惑  为什么b.show()结果不为B   又为什么b.print1()结果不为 ...

我也有点疑惑
但是第二个问题是因为你的重写了print1()方法所以你用b去调用的时候是B中的print1()运行的
第一个我试了一下在B中也重写 也能显示B 可能是就近原则吧.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马