【发布时间】:2014-10-17 14:20:30
【问题描述】:
假设我有 2 个类 ........A 类是基类,B 类是派生类,如果我创建一个引用,例如:A a=new B();,这是否意味着引用 @987654325 @ 指向 B Class 的对象?如果是,那么我如何能够在 B 中调用 A 的重写方法而不是 B 的其他方法?提前谢谢你
class A {
m1() {
}
}
class B extends A {
m1() {
}
m2() {
}
}
A a=new B();
a.m1(); //it will call overridden m1() in B
a.m2(); //it doesnt work if reference "a" points to object of B than why doesnt it call m2 method ?
【问题讨论】:
-
我建议您阅读 Polymorphism 上的 Oracle 教程。
-
当然还有 ((B)a).m2()
-
请注意,对于属性而不是方法,这是一个完全不同的故事 :-)
-
@Leo 如果你能解释一下,属性有什么不同会很感激:)
-
@Code-Apprentice 非常感谢老兄......现在阅读它
标签: java class object inheritance dynamic