黑马程序员技术交流社区
标题:
对象的转型和方法的重写(override)
[打印本页]
作者:
DD_vincent
时间:
2015-7-22 16:47
标题:
对象的转型和方法的重写(override)
class Person{
String name;
int age;
public void talk(){
System.out.print("111");
}
}
复制代码
class Student extends Person{
String address;
public void talk(){
System.out.print("222");
}
public void study(){
System.out.print("study");
}
}
复制代码
class Test{
public static void main(String[] args){
Student a = new Student();
Person b = new Student();
a.talk();
b.talk();
a.study();
//因为b是Person累的,所以b不能调用Student的study()方法。这里会报错
//b.study();
}
}
复制代码
在JAVA中,可以将子类对象赋给父类引用,但是“
一个引用能够调用的成员,取决于这个引用的类型
”。也就是说,如果我在Person类的b引用上是不能调用Student类的study()方法的。
但是,当子类将父类方法重写之后,最终调用的都是重写以后的方法,这个时候似乎又是
由这个引用实际所指向的对象来决定能够调用的成员
。这是为什么?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2