• 多态


    多态


    多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。

    如图:

    多态的优点

    • 1. 消除类型之间的耦合关系
    • 2. 可替换性
    • 3. 可扩充性
    • 4. 接口性
    • 5. 灵活性
    • 6. 简化性

    多态的前提:

    • 子父类继承关系;
    • 方法的重写;
    • 父类引用指向子类对象
    public class PoymorphicDemo {
        public static void main(String[] args) {
            
            Animal a = new Cat();
            a.eat();
            
        }
    }
    
    class Animal {
        public void eat() {
            System.out.println("吃东西");
        }
    }
    
    
    class Cat extends Animal {
        public void eat() {
            System.out.println("猫吃鱼");
        }
    }

    输出结果: 猫吃鱼

    多态的成员特点:

    成员变量:没有重写的概念;

    成员方法:根据子类方法输出结果;

    静态方法:通过类名调用方法;

    public class PoymorphicDemo2 {
        public static void main(String[] args) {
            Dad d = new Kid();
            d.function();
        }
    }
    
    class Dad {
        public static void function() {
            System.out.println("我是父类静态方法");
        }
    }
    
    class Kid extends Dad {
        public static void function() {
            System.out.println("我是子类静态方法");
        }
    }

    输出结果: 我是父类静态方法

    总结:

    1. 多态是方法的多态,不是属性的多态(多态与属性无关)。

    2. 多态的存在要有3个必要条件:继承方法重写父类引用指向子类对象。

    3. 父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。

    好处:节省代码让代码更加灵活,不论增加多少子类,都没有问题,如果没有多态就会有大量的重载。

      多态的实现方式

    • 接口实现多态
    • 抽象类实现多态
    • 虚方法实现多态
    参考https://zhuanlan.zhihu.com/p/111205248
  • 相关阅读:
    安卓学习记录(五)——体温表APP.2
    今日学习
    每日学习
    AS插件快速生成javabean
    LA 5842 Equipment (状态压缩+dp)
    LA 4794 Sharing Chocolate (搜索)
    LA 5844 Leet (dfs 搜索)
    uva 11627 Slalom (二分法)
    ZOJ 3031 Robotruck (dp + 单调队列)
    uva 10012 How Big Is It? (greedy + enumerate)
  • 原文地址:https://www.cnblogs.com/LiaoMengyu/p/12508046.html
Copyright © 2020-2023  润新知