首页 > 编程语言 > 详细

Java基础-多态

时间:2021-04-10 16:19:01      阅读:25      评论:0      收藏:0      [点我收藏+]

多态:多种形态

多态分为编译时多态和运行时多态,

1.编译时多态:方法重载(overload),相同的方法名,传入不同类型的参数

private int addition(int a, int b) {
    return a + b;
}
private int addition(double a, int b) {
    return (int) (a + b);
}
private int addition(int a, int b, int c) {
    return a + b + c;
}

2.运行时多态:子类继承父类,子类重写(override)父类方法

// 父类
public class Animal {

    public void run() {
        System.out.println("Animal running");
    }

    public void eat() {
        System.out.println("Animal eating");
    }

}

// 子类继承父类,只重写run方法
public class Cat extends Animal {

    @Override
    public void run() {
        System.out.println("Cat running");
    }

}

// 子类继承父类,重写run和eat方法
public class Dog extends Animal {

    @Override
    public void run() {
        System.out.println("Dog running");
    }

    @Override
    public void eat() {
        System.out.println("Dog eating");
    }

}

运行时多态的实现机制

  • JVM方法区
  • InvokeVirtual指令
  • 方法表(存放方法入口地址)

 

技术分享图片

 

Java基础-多态

原文:https://www.cnblogs.com/tjhill/p/14640456.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!