【发布时间】:2014-11-13 07:40:48
【问题描述】:
我有一个父类 A 和它的子类 B。两者都有 doSomething 方法,参数类型不同。
A类
package Inheritance;
public class A {
public void doSomething(Object str){
System.out.println("Base impl:"+str);
}
}
B类
package Inheritance;
public class B extends A{
public void doSomething(String str){
System.out.println("Child impl:"+str);
}
public static void main(String[] args) {
A a = new B();
a.doSomething("override");
}
}
当我运行它时,我得到“Base impl:override”作为输出!
a指向了B的一个对象,而他传递的参数是String,那么不应该调用B的doSomething(String str)方法吗?
【问题讨论】:
标签: java inheritance