JAVA父类引用指向子类的对象是什么意思?

Python010

JAVA父类引用指向子类的对象是什么意思?,第1张

父类 Person 子类 Student

可以这样定义 Person p = new Student()

就是你问的 “JAVA父类引用指向子类的对象”

但是你得注意:父类的引用指向子类的话,此时的 p 只能使用Person类中存在的方法,但是子类

Student类中扩充的方法就不能调用了

class Person {

private int age

private String name

public void setName(String name){

this.name = name

}

public String getName(){

return this.name

}

public void setAge(int age){

this.age = age

}

publc int getAge(){

return age

}

}

class Student extends Person {

private Strng school

public void setSchool(String school){

this.school = school

}

public String getSchool(){

return this.school

}

}

public class Demo{

public static void main(String [] args){

Person p = new Student()

//p.setSchool("清华大学")

//String school = p.getSchool()//以上的两个语句都是错误的,你自己看看吧

}

}

没错,子类相当于父类的改进或扩充,功能上子类会比父类更强大,属性更独特,定义一个父类引用指向子类对象,可以使用子类的功能并且可以抽取父类的共性,父类型的引用可以调取父类的属性和方法(包括子类中重写的父类属性或方法),但不能调用子类定义但父类没有的方法.

也有人管这种叫做面向接口编程,目的也是低耦合,只需要关心父类能做什么,不用关注子类是怎么做的,并且随时可以通过修改或者替换子类,而不用修改其他的东西.