Java面向对象:多态是编译时行为还是运行时行为

多态是编译时行为还是运行时行为?
答:运行时行为。可利用random随机数随机生成对象,在运行时产生对象,来证明多态试运行时行为。
代码:

import java.util.Random;

class Animal {
    String name = "animal";

    public String getinfo() {
        return null;
    }

}

class Cat extends Animal {
    String name = "cat";
    int age = 3;

    public String getinfo() {
        return String.format("name: %s age: %d", name, age);
    }

}

class Dog extends Animal {
    String name = "dog";
    int age = 5;

    public String getinfo() {
        return String.format("name: %s age: %d", name, age);
    }

}
public class PolymorphicDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        PolymorphicDemo pd = new PolymorphicDemo();
        Animal a = pd.getInstance(new Random().nextInt(3));
        System.out.println(a.getinfo());

    }

    public Animal getInstance(int key) {
        switch (key) {
        case 0:
            return new Cat();
        case 1:
            return new Dog();
        default:
            return new Animal();

        }
    }
}

输出:

name: cat age: 3
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 二、面向对象 1、面试对象思想: (1)概述:面向对象对相对于面向过程而言的,面向过程强调的是功能,面向对象强调的...
    有_味阅读 537评论 0 1
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 5,259评论 1 114
  • 二、面向对象 1、面向对象思想: (1)概述:面向对象是相对于面向过程而言的,面向过程强调的是功能,面向对象强调的...
    佘大将军阅读 493评论 0 1
  • “不识庐山真面目,只缘身在此山中。”这庐山可悲,可气,可憎。是世人眼中的“大多数”。这“大多数”通常“天真...
    木心2000阅读 213评论 0 0
  • 【教育,就是用生命影响生命】 教师节的时候,史总在视频中说过!这是多么怦然心动的感觉,这是恋爱的感觉! 很多家长,...
    谢盈阅读 697评论 0 2

友情链接更多精彩内容