概念:
父类引用指向子类对象,从而产生多态。
- 二者具有直接或间接地继承关系时,父类引用即指向子类对象,即形成多态。
- 父类引用只可调用父类中声明的属性和方法,不可调用子类中独有的属性和方法。
实例:某中学的一名老师,没钱的时候骑自行车去学校,有钱了买了小汽车开车去学校。
public class Test01 {
public static void main(String[] args) {
Teacher t1=new Teacher();
//类的多态:子类对象指向父类引用
//类的多态:父类引用存储了子类对象的内存地址
Vehicl v1=new Bike();
t1.open(v1);
System.out.println("-------------------");
t1.close(v1);
Vehicl v2=new Car();
t1.open(v2);
System.out.println("-------------------");
t1.close(v2);
}
}
abstract class Vehicl{ //交通工具类(父类)
public abstract void start();
public abstract void stop();
}
class Bike extends Vehicl{ //自行类(子类)
@Override
public void start(){
System.out.println("开始骑车");
}
@Override
public void stop(){
System.out.println("开始下自行车");
}
}
class Car extends Vehicl{ //汽车类(子类)
@Override
public void start(){
System.out.println("汽车打火");
}
@Override
public void stop(){
System.out.println("汽车熄火");
}
}
class Teacher{ //教师类
public void open(Vehicl v){
v.start();
}
public void close(Vehicl v){
v.stop();
}
}
运行结果:
开始骑车
-------------------
开始下自行车
汽车打火
-------------------
汽车熄火