多态:同一对象拥有多种形态
作用:把不同的数据进行统一
知识点:
1.把子类赋值给父类 ->向上转型
缺点:会屏蔽子类特有的方法
2.把父类赋值给子类 -> 向下转型,容易错误需要强转
(转化之后的数据类型)变量
动物父类
package 面向对象.多态;
public class animal {
public void eat() {
System.out.println("动物在吃");
}
}
动物子类
package 面向对象.多态;
public class dog extends animal{
public void eat() {
System.out.println("狗在吃骨头");
}
}
package 面向对象.多态;
public class cat extends animal{
public void eat() {
System.out.println("猫在吃鱼");
}
public void catchMouse() {
System.out.println("猫喜欢抓老鼠");
}
}
人
package 面向对象.多态;
public class person {
public void feed(animal ani) {
ani.eat();
}
}
执行
package 面向对象.多态;
public class Client {
public static void main(String[] args) {
animal ani1 = new cat();//把猫当做动物来看,把子类对象赋值给父类,向上转型,会屏蔽子类特有的方法
animal ani2 = new dog();
person ps = new person();
ps.feed(ani1);
ps.feed(ani2);
//向下转型
cat cc = (cat)ani1;
cc.catchMouse();
}
}
输出
猫在吃鱼
狗在吃骨头
猫喜欢抓老鼠