多态:编译时看左边,运行时看右边

复制代码
public class Polymorphism {
    public static void main(String[] args) {
        Animal a1 = new Dog();
        Animal a2 = new Cat();

        /*
        多态的编译过程会先看左边的类型,导致子类的函数不能用。但是多态在运行的时候会看右边,自动匹配子类对象

        a1.eat();
        a1.bark();//运行时多态看左边,左边是Animal类型,没有bark方法,导致报错
        a2.eat();
        a2.meow();//运行时多态看左边,左边是Animal类型,没有meow方法,导致报错

         */
        a1.eat();
        ((Dog)a1).bark();
        a2.eat();
        ((Cat)a2).meow();
    }
}
相关推荐
我命由我123454 小时前
Android Drawable - gradient
android·java·java-ee·kotlin·android studio·android-studio·android runtime
clear sky .4 小时前
[freertos源码阅读]task.c任务篇
c语言·开发语言
XR1234567884 小时前
工业园区整体组网,方案对比怎么选?
开发语言·php
东东最爱敲键盘4 小时前
day9.C++多态之虚函数
开发语言·c++
码云数智-园园4 小时前
类似小鹅通的知识付费小程序平台有哪些
开发语言
淡海水4 小时前
15-07-YooAsset面试篇-Unity性能优化与内存管理
java·unity·面试·性能优化·c#·游戏引擎
snow@li5 小时前
Java:跨平台原理与JDK、JRE、JVM全景深度解析
java·开发语言·jvm
Livia要学习5 小时前
Python闭包
开发语言·jvm·python
覆东流5 小时前
2.Java程序基础
java·开发语言·后端
snow@li5 小时前
SpringBoot:全套生命周期全景详解/应用级+Bean级
java·spring boot·rpc