java基础:多态(0921.2016).
来源:互联网 发布:华为数据卡槽不能换 编辑:程序博客网 时间:2024/06/05 07:47
概念:如把车分为卡车和客车。车为父类,卡车和客车分别为子类。在实例化的时候,新产生一个车的对象。再分别实例化对象卡车和客车分别赋值给车。即多态
例: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调用 覆盖方法)
- java基础:多态(0921.2016).
- Java基础_多态
- java基础<多态>
- java基础_04_多态
- java基础_多态
- java基础:多态
- Java 基础 polymorphism(多态)
- Java基础----多态
- Java基础--多态
- Java基础---多态
- Java基础--多态
- java基础--接口、多态
- JAVA基础----多态
- java基础回顾----多态
- Java基础(7):多态
- java基础<八>-------多态
- 6 Java基础 多态
- java 基础 ->多态
- Hibernate 多对多环境配置
- MBProgressHUD更改成自定义图片
- Spring获取bean的最简单方法
- 387.The Smallest Difference-最小差(中等题)
- Map与Set的使用little tips
- java基础:多态(0921.2016).
- C++ find函数
- Java-获取本地主机的域名和主机名(net)
- 面向对象的高级编程
- Android屏幕适配经验谈
- 自动化测试(selenium)
- Hibernate多对多操作
- 用异或来交换两个变量是错误的
- Android 权限,权限分组的一些问题