第1个回答 推荐于2017-11-26
对于这个问题你要明白两点:
1、何为覆盖
2、何为对象引用,何为对象实体(重点)
Father obj=new Son();
Father obj 是对象引用
new Son(); 是对象实体
所以调用的方法可以说都是子类的方法,因为此代码中实体对象是子类,
但由于引用是属于父类,所以在调用子类方法时,只能调用父类中已声明的。
换句话来说,其实就是用父类做声明,由子类来实例化,方法是谁的关键看new 后面的是谁。本回答被提问者采纳
第2个回答 2014-02-14
父类可以调用子类重写的父类的成员方法。
这点可以用下面的例子来说明
public class son extends father{
/**
* 父类可以调用子类重写的成员方法
* */
public void pirnt(){
System.out.println("son");
}
public static void printS(){
System.out.println("son static");
}
public static void main(String[] args) {
father f=new son();
f.pirnt();
father.printS();
}
}
class father{
public void pirnt(){
System.out.println("father");
}
public static void printS(){
System.out.println("father static");
}
}本回答被网友采纳
第4个回答 2019-08-18
多态的存在就是为了让父类对象引用子类从写的方法,至于你说的属性:就是老三说的可编译时还是认为他为父类,所以只能访问父类对象的属性等。