什么是多态?
多态是同一个行为具有多个不同表现形式或形态的能力。
多态的作用
多态在开发中联合方法覆盖一起使用,可以降低程序的耦合度,提高程序的扩展力。在开发中尽可能面向抽象编程,不要面向具体编程,好比电脑主板和内存条的关系一样,主板和内存条件之间有一个抽象的符合某个规范的插槽,不同品牌的内存条都可以插到主板上使用,2个G的内存条和4个G的内存条都可以插上,但最终的表现结果是不同的,2个G的内存条处理速度慢一些,4个G的快一些,这就是多态,所谓多态就是同一个行为作用到不同的对象上,最终的表现结果是不同的,主要的要求就是对象是可以进行灵活切换的,灵活切换的前提就是解耦合,解耦合依赖多态机制。
多态实现的必要条件
- 子类必须继承父类
- 必须有重写
- 父类引用指向子类对象。向上转型
父类
public class Animal { public void eat() { System.out.println("所有的动物都很能吃。。。。。"); } public void run() { System.out.println("所有的动物都很能吃。。。。。"); } }
子类
public class Cat extends Animal{ public void eat() { System.out.println("所有的猫都能吃。。。。。"); } public void jump() { // TODO Auto-generated method stub System.out.println("所有的猫都能跳。。。。"); } } class Dog extends Animal{ @Override public void eat() { System.out.println("狗吃骨头"); } public void jump(){ System.out.println("狗一跳一跳"); } }
测试类
public class Test { public static void main(String[] args) { /*子类自动转父类*/ Animal animal = new Cat() | new Dog();//多态 animal.eat(); /*父类不能自动转子类,需要强制转化*/ Cat cat = (Cat) animal; cat.jump(); } }