多态: 面向对象3大特性之一
作用: 提高代码的可扩展性和可维护性
前提和基础:
1) 继承/实现
2) 方法重写
3) 向上转型: 父类对象 指向 子类实例
例: Pet pet = new Dog();
注1: 向上转型后, 通过父类引用变量无法使用子类特有的属性和方法
4) 向下转型: 将父类类型的对象 转换成 子类类型
例: Pet pet = new Dog();
Dog dog = (Dog)pet; ( 强制转换 )
注2: 父类类型对象的实例内容, 必须与要转换的子类类型符合
注3: 通过 instanceof 运算符判断是否可以进行向下转型
(instanceof 用于判断一个对象是否属于一个类)
注4: 向下转型后的对象, 可以使用子类特有的属性和方法
注5. 向下转型必须进行强制类型转换
多态的使用方式:
1) 将父类类型作为方法的形参类型
2) 将父类类型作为方法的返回值类型
示例:
package com.entity.pet;
/**
* 宠物实体父类
* @author Administrator
*/
public class Pet {
private String name;
private int health;
private int friendship;
public Pet() {
}
public Pet(String name, int health, int friendship) {
this.name = name;
this.health = health;
this.friendship = friendship;
}
/**
* 一个治疗疗程
*/
public String cure(int count) {
return "第" + count + "疗程: ";
}
/**
* 宠物类型
* @