定义: 多态是指不同类的对象在调用同一个方法是所呈现出的多种不同行为。
优点:1. 消除了类之间的耦合关系
2.提高程序的可扩展型和可维护性
耦合:指的是代码之间的关联程度。
多态转换类型: 向上转型
对象可以调用子类的重写方法
定义:父类引用指向子类对象
父类:
public class Animal {
public void eat(){
System.out.println("动物吃食物");
}
}
子类:
public class cat extends Animal{
public void eat(){
System.out.println("猫吃鱼");
}
}
测试类:
public class text {
public static void main(String[] args) {
Animal a1 = new cat(); //父类引用指向子类对象
a1.eat();
}
}
问题: 向上转型为什么不可以调用子类的特有方法?
答: 首先子类继承父类,而父类没有子类的特有方法,所以不能调用子类的特有方法。
多态转换类型:向下转型
定义:由父类引用转成一个对应的真实的子类对象。
子类:
public class cat extends Animal{
public void eat(){
System.out.println("猫吃鱼");
}
public void catmouse(){
System.out.println("猫抓老鼠");
}
}
测试类:
public class text {
public static void main(String[] args) {
Animal a1 = new cat(); //父类引用指向子类对象
a1.eat();
((cat)a1).catmouse(); // 方法强转
cat cc = (cat)a1; // 向下转型 把父类的变量转化回子类的变量。
cc.catmouse();
}
}
输出内容:猫吃鱼
猫抓老鼠