zoukankan      html  css  js  c++  java
  • 多态

    多态


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

    如图:

    多态的优点

    • 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
  • 相关阅读:
    JS进阶篇--函数防抖(debounce)
    vue注册全局组件分页
    vue下拉框清空
    vue中的watch监听
    五:request和response的使用
    四:servlet最终形态
    三:登录功能实现,servlet
    二:Tomcat与登录
    一:JavaWeb
    Linux安装JAVA并且配置环境
  • 原文地址:https://www.cnblogs.com/LiaoMengyu/p/12508046.html
Copyright © 2011-2022 走看看