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

class A {
            public void show() {
                        show2();
            }
       
            public void show2() {
                        System.out.println("我");
            }
}
class B extends A {
            public void show2() {
                       System.out.println("爱");
            }
}
class C extends B {
            public void show() {
                        super.show();
            }
       
            public void show2() {
                        System.out.println("你");
           }
}
public class Test {
            public static void main(String[] args) {
                          A a = new B();
                          a.show();
                          B b = new C();
                          b.show();
    }
}

8 个回复

倒序浏览
好无聊这题。。。。
回复 使用道具 举报
你要干嘛               
回复 使用道具 举报

输出结果整不明白
回复 使用道具 举报
寰宇天侠 发表于 2015-9-3 00:02
好无聊这题。。。。

好吧,都是大神级别的,我们这些菜鸟的问题都成笑话了
回复 使用道具 举报
不好意思我以为水贴。。先找被覆盖的,遇到super就往上找。。往上找到A的show2又下来找被C中覆盖的show2,,,
回复 使用道具 举报
Wqi 高级黑马 2015-9-3 13:12:38
7#
子类会继承父类所有非私有成员,如果子类重新定义就会覆盖父类的,此时要用被覆盖的就用super调用,没覆盖的可以直接this调用.
回复 使用道具 举报
a.show()是爱 因为方法重写了
b.show()输出你 因为方法重写了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马