您的位置:首页 > 编程语言 > Java开发

java基础:多态(0921.2016).

2016-09-21 23:51 176 查看
概念:如把车分为卡车和客车。车为父类,卡车和客车分别为子类。在实例化的时候,新产生一个车的对象。再分别实例化对象卡车和客车分别赋值给车。即多态

例:Car car = new Car();// 父类变量car引用父类实例 , car指向Car 类的实例

car = new passengerCar(); //父类变量car引用子类的实例 ,car指向 passengerCar 类的实例(对象)

car = new TruckCar();//父类变量car引用子类的实例 ,car指向TruckCar 类的实例(对象)

car是车类,passengerCar(卡车)是卡车。car是车类,也可以是卡车。它有不同的表现形式,即多态。(人也可以是人类,也可以是教师。)

再比如“宠物”,也有很多不同的表达或实现,它可以是小猫、小狗、蜥蜴等,我们到宠物店说“请给我一只宠物”,服务员给我们小猫、小狗或者蜥蜴都可以,我们就说“宠物”具备了多态性。

多态是指一个事物有不同的表现形式或形态。

多态存在的三个必要条件:要有继承、要有重写、父类变量引用子类对象。

当使用多态方式调用方法时:

首先检查父类中是否有该方法,如果没有,则编译错误;如果有,则检查子类是否覆盖了该方法。如果子类覆盖了该方法,就调用子类的方法,否则调用父类方法

/**

* 新华租车系统.

类型 功能 属性

卡车 载货 载重量, 车辆数 , 租车费用

客车 载人 载人量 ,车辆数, 租车费用

要求:查看所有车型信息,

车型 功能 载人/货量 车辆数

客车 载人 5 20

卡车 载货 6 5

车(car)

卡车(truckCar)      客车(passengerCar)


*/

//父类

public class Car {

String model;

int number;

int numberCar;

String action;

void message(){
System.out.println("显示所有车型信息:");
System.out.println("车型"+"\t"+"功能"+"\t"+"载人/载货"+"\t"+"车辆数");
}


}

//子类

public class passengerCar extends Car {

void message(){//覆盖方法

super.message();//调用父类方法

System.out.println(model+”\t”+action+”\t”+number+”\t”+numberCar);

}

}

public class TruckCar extends Car{

void message(){//覆盖方法

System.out.println(model+”\t”+action+”\t”+number+”\t”+numberCar);

}

}

public class Cartest {

public static void main(String[] args) {
Car passenger = new passengerCar();w
passenger.model="卡车";
passenger.action="载货";
passenger.number=6;
passenger.numberCar=5;
passenger.message();

passenger = new TruckCar();
passenger.model="客车";
passenger.action="载人";
passenger.number=5;
passenger.numberCar=20;
passenger.message();

}


}

(此例运用了多态 super调用 覆盖方法)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: