学习多态要知道几点
1.多态的前提:继承+重写。father f = new son();
2.口诀:
(1)父类引用指向子类对象:创建出来的子类对象的地址值交给父类类型的引用变量来保存;
(2)编译看左边,运行看右边:必须要在父类中定义这个方法才能通过编译,因为多态对象认为自己是父类类型;必须要在子类中重写父类提供的方法,才能满足多态,因为实际干活的是子类。
package cn.tedu;
/**本类用于复习多态*/
public class ReviewPolymorphism {
public static void main(String[] args) {
/**
* 多态的前提:继承+重写
*/
//创建父类对象
Car car = new Car();
System.out.println(car.price);
car.run();
//创建子类对象
BMW bmw = new BMW();
bmw.fix();
//创建多态对象
Car c = new TSL();
c.run();//特斯拉运行
System.out.println(c.color);//null
//结果为null:因为多态对象把自己当作父类类型
}
}
class Car{
String color;
double price;
public void run(){
System.out.println("汽车运行");
}
public void fix(){
System.out.println("汽车修理");
}
}
class BMW extends Car{
String color = "black";
double price = 100;
@Override
public void run() {
System.out.println("宝马运行");
}
@Override
public void fix() {
System.out.println("宝马修理");
}
}
class TSL extends Car{
String color = "red";
double price = 200;
@Override
public void run() {
System.out.println("特斯拉运行");
}
@Override
public void fix() {
System.out.println("特斯拉修理");
}
}