class OldStudent{
public String toS(){
return "it's class OldStudent ";
}
}class Student extends OldStudent{ public String toS(){
return "it's class Student ";
}public void toSS(){
}
public static void main(String[] args){
OldStudent stu=new Student(); System.out.println(stu); System.out.println(stu.toS());//应该指向的是父类的toS()方法呀
}
}为什么输出it's class Student.而不是it's class OldStudent
public String toS(){
return "it's class OldStudent ";
}
}class Student extends OldStudent{ public String toS(){
return "it's class Student ";
}public void toSS(){
}
public static void main(String[] args){
OldStudent stu=new Student(); System.out.println(stu); System.out.println(stu.toS());//应该指向的是父类的toS()方法呀
}
}为什么输出it's class Student.而不是it's class OldStudent
OldStudent stu=new Student(); 这里创建了一个Student对象,并把它的引用立立即赋值给OldStudent 通过继承,Student就是一种OldStudent。
OldStudent是父类的,Student是子类的.子类继承了父类,而且重写了父类的方法String toS()
因为子类中方法String toS()中的return "it's class Student ";覆盖了父类方法String toS()中的return "it's class OldStudent ";.所以最终输出it's class Student