情况如下,我写了个测试类。
son类
public class son extends father
{
public son()
{
fs="new son";
}
public void say()
{
System.out.println("son say()");
}
father类
public class father
{
String fs;
father()
{
fs="new father";
}
public void say()
{
System.out.println("father say()");
}
}
执行:
father ff=new son();
ff.say(); //“son say()”
执行的结果尽然是输出了“son say()”,也就是说执行了son里的say方法,这是怎么回事啊?
而且我将son类中的say()方法删掉后,ff.say()的结果为预期的“father say()”,ff对象向上转型后为什么优先执行的方法是子类的方法啊。