楼上已经说了,是多态,给你配一段代码,可能会比较清楚一些。希望对你有用。 /** * Created by cashlu on 14/11/16. *///Father类为父类,有一个成员变量name,构造器函数中给name赋值为Father。 //Father类中还有一个方法printName(),返回对象的name属性。 public class Father { String name; public Father(){ name = "Father"; } public String printName(){ return this.name; } public static void main(String[] args) { //下面这一行就是所谓的“父类引用指向子类对象”,这是JAVA多态的特性。 Father t = new Son(); //输出对象t的name属性,结果为Son,t所指向的对象,实际上是son对象 System.out.println(t.printName()); System.out.println(t.getClass()); } }//Son是子类,继承了父类的printName()方法,构造器重写了,将name属性赋值为Son class Son extends Father { public Son(){ name = "Son"; } }
/**
* Created by cashlu on 14/11/16.
*///Father类为父类,有一个成员变量name,构造器函数中给name赋值为Father。
//Father类中还有一个方法printName(),返回对象的name属性。
public class Father {
String name;
public Father(){
name = "Father";
} public String printName(){
return this.name;
} public static void main(String[] args) { //下面这一行就是所谓的“父类引用指向子类对象”,这是JAVA多态的特性。
Father t = new Son();
//输出对象t的name属性,结果为Son,t所指向的对象,实际上是son对象
System.out.println(t.printName());
System.out.println(t.getClass());
}
}//Son是子类,继承了父类的printName()方法,构造器重写了,将name属性赋值为Son
class Son extends Father {
public Son(){
name = "Son";
}
}