黑马程序员技术交流社区
标题:
子类重写父类
[打印本页]
作者:
TS__likewise
时间:
2014-6-16 19:39
标题:
子类重写父类
class A {
public void fun1() {
System.out.println(" A ");
}
public void fun2() {
fun1();
}
}
class B extends A{
public void fun1() {
System.out.println(" B");
}
}
public class Test {
public static void main(String[] args) {
new B().fun1();
new B().fun2();
}
}
运行后的结果为:
B
B
new B().fun2(),是调用了从A继承来的方法fun2(),正如fun2()放里面看到的,又调用fun1()方法,最后输出的结果为重写后B类fun1()的结果而不是父类A里面fun1()的结果,这是为什么
作者:
姿_`态
时间:
2014-6-16 19:54
fun2()是子类继承来的,fun()1把父类的fun()1覆盖了
所以对于子类他有的方法是
public void fun1() {
System.out.println(" B");
}
public void fun2() {
fun1();
}
创建B对象,调用fun()2,输出肯定是B啊
作者:
张益达
时间:
2014-6-16 20:24
现在 B对象的实例指向了A对象的引用 调用方法当然是B的方法 你懂得
作者:
Alan_Kwan
时间:
2014-6-16 21:30
ClassA c = new ClassB();
成员变量看左边,成员方法看右边。
作者:
崔湖尧
时间:
2014-6-16 21:36
1. 子类B复写了fun1();所以运行fun1()结果为B
2. 创建了子类B的对象,因此运行子类B的fun1(),结果为B
作者:
人心如水
时间:
2014-6-16 22:56
对象是谁,调用谁的方法 我一直死记住
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2