多态是什么
事物存在的多种体现形态
多态的表现形式
父类的引用指向了自己子类的对象;父类的引用也可以接收自己的子类对象
多态的好处
大大提高了代码的扩展性。
多态的前提
类与类之间必须有关系,要那么继承,要么实现;方法需要完全覆盖。
多态的弊端
提高了扩展性,但是只能用父类的引用去访问父类的成员
- abstract class Animal
- {
- public abstract void eat();
- }
- class Cat extends Animal
- {
- public void eat(){
- System.out.println("吃鱼");
- }
- public void catchMouse(){
- System.out.println("抓老鼠");
- }
- }
- class Dog extends Animal
- {
- public void eat(){
- System.out.println("吃骨头");
- }
- public void catchHome(){
- System.out.println("看家");
- }
- }
- class Pig extends Animal
- {
- public void eat(){
- System.out.println("吃饲料");
- }
- public void gongDi(){
- System.out.println("拱地");
- }
- }
- class Demo01_DuoTai
- {
- public static void main(String[] args)
- {
- //多态的表现形式:父类的引用指向了自己子类的对象;父类的引用也可以接收自己的子类对象
- function(new Cat());
- function(new Dog());
- function(new Pig());
- /*
- 输出结果
- 吃鱼
- 吃骨头
- 吃饲料
- */
- }
- public static void function(Animal a){
- a.eat();
- }
- }
复制代码 |
|