Java继承中 如果父类中的方法调用父类的其他方法,还需要理会子类的方法有没有重没重写?
答
子类拥有父类非 private 的属性和方法。。
类B继承于类A,test方法也继承下来了。
类B的代码实际上是这样的
class B extends A{
void test(){ //继承了类A的test
method();
}
void method(){
System.out.println("Sub")
}
}
继承是面向对象的基本概念,这样再看看题目的输出,是不是就好理解了呢。
如果对您有帮助,请采纳答案好吗,谢谢!
答
如果是通过子类去调用的就是需要理会的,因为子类可以重写父类的方法,方法的作用对象是子类。
答
因为方法的作用对象是子类,每次调用的时候先从子类往上面找,如果子类重写了父类的方法就会调用,如果没有才会调用父类的方法。
答
楼上说的很详细,正解!
答
需要的 ,例如你上面写的
example:
new B().test();
首先实例的是子类,然后,子类调用的是父类的方法,而父类中这个方法又调用了一个被子类重写的方法,
所以,父类的test 在被调用的时候 ,实际上是调用的method这个方法,而这个方法又被子类重写,所以,转了一个
圈回来还是调用父类被重写的方法 ,
父类调用父类自己的方法,也是要考虑这个方法是不是被子类给重写了或者篡改了
问题仔细考虑下,别钻牛角尖即可!
希望对你有帮助
答
在 new B() 的时候 是
void test(){
method();
}
void method(){
System.out.println("Sub");
}
出现的这两个方法,
你调用 new B().test(); 自然是被重写后的方法。
答
因为B继承A所以无论A中有什么方法,在测试类中直接用子类获取就可以获取到父类所有的方法