多态
一种类型,多种形态,对象在创建时是父类形态,在使用时是子类形态。
多态在程序设计中,为程序提供了 [可插拔性]
向上转型:子类赋值给父类。自动类型转换。
向下转型:父类强制转换成子类,需要加子类类型符号。
多态:形成的必要因素:
1:必须有继承关系。
2:子类中需有方法的重写。
关键词:instanceof : 是否包含子类对象。
演示
/**
- 多态的演示。
- @author hadoop
*/
public class Test {
public static void main(String[] args) {
// 初始化对象
Penguin penguin = new Penguin("qq",2,85,50,"雌");
Dog dog = new Dog("大黄",3,75,85,"黄色");
// 多态 一种类型,多种形态。
Pet pet = new Penguin("qq",2,85,50,"雌");// 你记得,子类赋值给父类。自动类型转换。向上转型。
pet = new Dog("大黄",3,75,85,"黄色"); // 你记得,子类赋值给父类。自动类型转换。向上转型。
pet.eat();// 多态的父类,拥有子类的多种形态,子类重写父类的方法。父类对象在调用方法时,运行子类的方法。
if(pet instanceof Penguin){
Penguin pen = (Penguin)pet;// 你记得,父类强制转换成子类,需要加子类类型符号,向下转型。
pen.eat();
}else if(pet instanceof Dog){
Dog dog2 = (Dog)pet;
dog2.eat();
}
}
}
附录
java中的访问修饰符
import:调用其他包的类。
public:可以访问所有的包和类(在同一个项目里)。
private:私有的,只能在本类中使用
default:默认的,不用写 能在本类中访问
protect:保护不相关的类使用这些变量和方法,子类能访问protect所保护的变量和方法。