JAVA多态
Posted randlly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA多态相关的知识,希望对你有一定的参考价值。
多态的理解:
- 多态是同一个行为具有多个不同表现形式或形态的能力。
- 多态就是同一个接口,使用不同的实例而执行不同操作。
- 多态性是对象多种表现形式的体现。
多态的优点:
1.消除类型之间的耦合关系
2.可替换性
3.可扩充性
4.接口性
5.灵活性
6.简化性
多态存在的三个必要条件
1.继承
2.重写
3.父类引用指向子类对象
比如
1 Parent p = new Child();
当使用多态方式调用方法是,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
1 package com.poly.www; 2 3 public class Test 4 public static void main(String[] args) 5 show(new Cat()); // 以 Cat 对象调用 show 方法 6 show(new Dog()); // 以 Dog 对象调用 show 方法 7 8 Animal a = new Cat(); // 向上转型 9 a.eat(); // 调用的是 Cat 的 eat 10 Cat c = (Cat) a; // 向下转型 11 c.work(); // 调用的是 Cat 的 work 12 13 14 public static void show(Animal a) 15 a.eat(); 16 // 类型判断 17 if (a instanceof Cat) // 猫做的事情 18 Cat c = (Cat) a; 19 c.work(); 20 else if (a instanceof Dog) // 狗做的事情 21 Dog c = (Dog) a; 22 c.work(); 23 24 25 26 27 abstract class Animal 28 abstract void eat(); 29 30 31 class Cat extends Animal 32 public void eat() 33 System.out.println("吃鱼"); 34 35 36 public void work() 37 System.out.println("抓老鼠"); 38 39 40 41 class Dog extends Animal 42 public void eat() 43 System.out.println("吃骨头"); 44 45 46 public void work() 47 System.out.println("看家"); 48 49
执行以上程序,输出结果:
吃鱼
抓老鼠
吃骨头
看家
吃鱼
抓老鼠
多态的实现方式
- 重写
- 接口
- 抽象和抽象方法
以上是关于JAVA多态的主要内容,如果未能解决你的问题,请参考以下文章