黑马程序员技术交流社区

标题: 面向对象学完了,我做这题还是很绕~~~ [打印本页]

作者: 窗外的雪儿飞    时间: 2015-9-2 23:57
标题: 面向对象学完了,我做这题还是很绕~~~
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();
    }
}

作者: 寰宇天侠    时间: 2015-9-3 00:02
好无聊这题。。。。
作者: 别弄那些没的    时间: 2015-9-3 00:04
你要干嘛               
作者: 窗外的雪儿飞    时间: 2015-9-3 00:43
别弄那些没的 发表于 2015-9-3 00:04
你要干嘛

输出结果整不明白
作者: 窗外的雪儿飞    时间: 2015-9-3 00:45
寰宇天侠 发表于 2015-9-3 00:02
好无聊这题。。。。

好吧,都是大神级别的,我们这些菜鸟的问题都成笑话了
作者: 寰宇天侠    时间: 2015-9-3 13:01
不好意思我以为水贴。。先找被覆盖的,遇到super就往上找。。往上找到A的show2又下来找被C中覆盖的show2,,,
作者: Wqi    时间: 2015-9-3 13:12
子类会继承父类所有非私有成员,如果子类重新定义就会覆盖父类的,此时要用被覆盖的就用super调用,没覆盖的可以直接this调用.
作者: xie1989718    时间: 2015-9-3 14:05
a.show()是爱 因为方法重写了
b.show()输出你 因为方法重写了




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