黑马程序员技术交流社区
标题:
多态当中成员方法的问题
[打印本页]
作者:
tujiu888
时间:
2016-1-21 17:41
标题:
多态当中成员方法的问题
class Test {
public static void main(String[] args) {
Test t = new A();
t.xx();
t.bb();
}
private void xx() {
System.out.println("Hello!");
}
void bb() {
System.out.println("22222222222222222");
}
}
class A extends Test {
void xx() {
System.out.println("1112222");
System.out.println("Hello World!");
}
void bb() {
System.out.println("11111111111111");
}
}
这种情况下执行为何看的是右边, 不是编译看左边,执行看右边! 如果私有,那么编译应该是报错的,为何也没有报错
作者:
黑色皮肤的马
时间:
2016-1-21 20:26
A是Test的子类,其中 void bb() 是重写父类的方法,void xx()A类的特有方法,因为父类的 void xx() 方法是私有的,不可以重写。Test t = new A();是多态,编译看左边,父类既有xx方法又有bb方法,所以不会报错,子类也是具有这两个方法,所以运行的时候都是运行的子类的这两个方法。
作者:
zhanganping
时间:
2016-1-22 00:18
1楼正解学会了,最重要分析好classA中的voidxx()方法
作者:
a337136395
时间:
2016-1-22 12:41
顺便也学习了 ~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2