10-多态和对象的转换
- 类与类之间的转换:
- 向上转型 – 子类 --> 父类 自动
- 向下转型 – 父类 --> 子类 强制
public class Demo {
public static void main(String[] args) {
Pet dog = new Cat(); //这只狗是一个宠物 父类的引用指向子类对象
//Dog pet = (Dog) new Pet(); // 宠物就是狗 //强制类型转换
if( dog instanceof Dog){ //这个dog这个对象是一个狗狗吗? 是:true 不是:false
Dog d =(Dog) dog; //已经确定对方的身份 向下类型转换 强制类型转换
System.out.println(d);
}else{
System.out.println("不是狗");
}
}
}
-
多态: 将父类作为方法形式参数,在方法运行的时候,传入不同的子类对象 当同一个事物,由于条件不同,产生的结果也不同.
-
实现多态的步骤:
1.编写父类
2.编写子类,子类重写父类的方法
3.运行时,父类去创建子类的对象
public abstract class Pet {
private String name; //昵称
private int health ; //健康值
//公有的取值赋值方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
this.health = health;
}
//构造函数
public Pet(String name, int health) {
super();
this.name = name;
this.health = health;
}
public Pet() {
super();
}
//宠物的独白
public abstract void show();
//宠物们吃的方法
public abstract void eat();
}