1.多态:
1.1 对象的多态:
重要的一句:父类的引用指向子类的对象。
多态的三大基础:
1.必须要有继承关系。
2.必须要有重写。
3.父类的引用指向子类的对象。
实例:
class Vihicle {
public void action (Car car) {
car.run();
}
}
class Car{
private String name;
private String color;
private double speed;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public double getSpeed() {
return speed;
}
public void setSpeed(double speed) {
this.speed = speed;
}
public void run() {
}
}
class SportsCar extends Car {
@Override
public void run() {
System.out.println("车名:" + getName() + "颜色:" + getColor() + "时速:" + getSpeed());
// System.out.println("贴地飞行");
}
}
public class Demo3 {
public static void main(String[] args) {
Vihicle vihicle = new Vihicle();
Car car = new SportsCar();
car.setName("AE86");
car.setColor("白色");
car.setSpeed(260);
vihicle.action(car);
}
}
1.2 方法的多态:
方法的重写和重载就是方法多态的体现。
class Bird{
public void fly(){
}
}
class Hawk extends Bird{
//方法的重写
@Override
public void fly() {
System.out.println("飞的很高");
}
//方法的重载
public void fly(String name) {
}
}
1.3 多态的转型:
1.3.1 向上转型:
多态的向上转型就是父类的引用指向子类的对象。
语法格式:
父类 父类引用名称 = new 子类();
向上转型是小转大,可以自动转型,不需要强制转换。
1.3.2 向下转型:
多态的向下转型不可以自动转型,需要先向上转型,然后再执行向下转型,这样就不会出错。
语法格式:
、父类 父类引用名称 = new 子类();:先向上
子类 子类引用名称 = (子类)父类引用名称 : 再向下