做网站公司汉狮价格,wordpress博客分享,找关键词的三种方法,邯郸微信公众号开发Java多态 多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口#xff0c;使用不同的实例而执行不同操作
多态性是对象多种表现形式的体现。
多态的优点
1. 消除类型之间的耦合关系2. 可替换性3. 可扩充性4. 接口性5. 灵活性6. 简化性
多态存在的三个…Java多态 多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口使用不同的实例而执行不同操作
多态性是对象多种表现形式的体现。
多态的优点
1. 消除类型之间的耦合关系2. 可替换性3. 可扩充性4. 接口性5. 灵活性6. 简化性
多态存在的三个必要条件
继承重写父类引用指向子类对象Parent p new Child();
当使用多态方式调用方法时首先检查父类中是否有该方法如果没有则编译错误如果有再去调用子类的同名方法。
多态的好处可以使程序有良好的扩展并可以对所有类的对象进行通用处理
实例
public class Test {public static void main(String[] args) {show(new Cat()); // 以 Cat 对象调用 show 方法show(new Dog()); // 以 Dog 对象调用 show 方法Animal a new Cat(); // 向上转型 a.eat(); // 调用的是 Cat 的 eatCat c (Cat)a; // 向下转型 c.work(); // 调用的是 Cat 的 work} public static void show(Animal a) {a.eat(); // 类型判断if (a instanceof Cat) { // 猫做的事情 Cat c (Cat)a; c.work(); } else if (a instanceof Dog) { // 狗做的事情 Dog c (Dog)a; c.work(); } }
}abstract class Animal { abstract void eat();
} class Cat extends Animal { public void eat() { System.out.println(吃鱼); } public void work() { System.out.println(抓老鼠); }
} class Dog extends Animal { public void eat() { System.out.println(吃骨头); } public void work() { System.out.println(看家); }
} 吃鱼 抓老鼠 吃骨头 看家 吃鱼 抓老鼠 虚函数
虚函数的存在是为了多态。
Java 中其实没有虚函数的概念它的普通函数就相当于 C 的虚函数动态绑定是Java的默认行为。如果 Java 中不希望某个函数具有虚函数特性可以加上 final 关键字变成非虚函数。
多态的实现方式
方式一重写
方式二接口
方式三抽象类和抽象方法