黑马程序员技术交流社区

标题: 关于继承的问题,哪位大神来帮我搞定下这段代码! [打印本页]

作者: KyluS    时间: 2015-11-27 23:01
标题: 关于继承的问题,哪位大神来帮我搞定下这段代码!
  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. }
复制代码

作者: KyluS    时间: 2015-11-27 23:02
b.show()结果为 A
b.print1()结果为 456
有点疑惑  为什么b.show()结果不为B   又为什么b.print1()结果不为123
作者: Weidan    时间: 2015-11-28 14:47
KyluS 发表于 2015-11-27 23:02
b.show()结果为 A
b.print1()结果为 456
有点疑惑  为什么b.show()结果不为B   又为什么b.print1()结果不为 ...

我也有点疑惑
但是第二个问题是因为你的重写了print1()方法所以你用b去调用的时候是B中的print1()运行的
第一个我试了一下在B中也重写 也能显示B 可能是就近原则吧.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2