这个简单程序的输出是This is base
.
public class mainApp{
private void func(){
System.out.println("This is base");
}
public static void main(String[] args){
mainApp newObj = new derived();
newObj.func();
}
}
class derived extends mainApp{
public void func(){
System.out.println("This is derived");
}
}
我的问题是,当我们使用这一行时
mainApp newObj = new derived();
,我们实际上并没有使用基类mainApp的引用创建派生类的对象。那么,当我使用对象调用它的方法时,为什么不从派生类中获取方法呢?为什么我从基类中获取方法。使用这一行,我们是在使用mainApp
mainApp newObj = new derived();
的引用还是在使用派生类的对象。哪一个是正确的?