zoukankan      html  css  js  c++  java
  • java之多态(Polymorphic)、动态绑定(Dynamic Binding)、迟绑定(Late Binding)

    今天,我们来说说java面向对象最核心的东西,多态。通过多态可以使我们的程序可复用性达到极致,这就是我们为什么要学多态的原因。

    “多态”(Polymorphic)也叫“动态绑定”(Dynamic Binding)同时也叫“迟绑定”(Late Binding)。

    动态绑定是指“在执行期间(而非编译期间)判断所引用对象的实际类型,根据其实际类型调用其相应的方法。”

    程序代码:

    复制代码
    public class TestPolymorphic{
        public static void main(String args[]){
        
            Animal animal = new Animal("animal");
            Cat cat = new Cat("cat","blue");
            Dog dog = new Dog("dog","black");
            
            Lily l1 = new Lily("l1",animal);
            Lily l2 = new Lily("l1",dog);
            
            l1.myAnimalEnjoy();
            l2.myAnimalEnjoy();
        }
    }
    class Lily{
        private String name;
        private Animal animal;
        public Lily(String name, Animal animal){
            this.name = name;
            this.animal = animal;
        }
        public void myAnimalEnjoy(){
            animal.enjoy();
        }
    }
    class Animal{
        private String name;
        public Animal(String name){
            this.name = name;
        }
        public void enjoy(){
            System.out.println("叫声~~~");
        }
    }
    class Dog extends Animal{
        
        private String forlorColor;
        public Dog(String name,String forlorColor){
            super(name);
            this.forlorColor = forlorColor;
        }
        public void enjoy(){
            System.out.println("dog叫声~~~");
        }
    }
    class Cat extends Animal{
        
        private String eyesColor;
        public Cat(String name,String eyesColor){
            super(name);
            this.eyesColor = eyesColor;
        }
        public void enjoy(){
            System.out.println("cat叫声~~~");
        }
    }
    复制代码

    程序运行结果:

    总结:通过以上示例,我们发现多态必备的三个条件1、有继承2、有重写3、父类引用指向子类对象

  • 相关阅读:
    Knative Serving 进阶: Knative Serving SDK 开发实践
    从求生存到修体系,我在阿里找到了技术人的成长模式
    K8s 学习者绝对不能错过的最全知识图谱(内含 56个知识点链接)
    P1197 [JSOI2008]星球大战
    P1311 选择客栈
    P2822 组合数问题
    贪心 加工生产调度
    P3375 【模板】KMP字符串匹配
    P1025 数的划分
    P1019 单词接龙
  • 原文地址:https://www.cnblogs.com/zwy890301/p/5844243.html
Copyright © 2011-2022 走看看