java中多态与groovy中多态的使用

源码基于Groovy程序设计一书中的第三章第6小姐

java中的多态

基类

public class Employee {
    public void raise(Number amount){
        System.out.println("Employee got raise");
    }
}

子类

import java.math.BigDecimal;

public class Executive extends Employee {
    @Override
    public void raise(Number amount) {
        System.out.println("Executive got raise");
    }
    public void raise(BigDecimal amount) {
        System.out.println("Executive got BigDecimal raise");
    }
}

主类

import java.math.BigDecimal;

public class Test {
    public static void giveRaise(Employee employee) {
        // 由于是基类的定义,在运行时调用的方法必须接受Number作为参数
        employee.raise(new BigDecimal(10000.00));
    }

    public static void main(String[] args) {
        giveRaise(new Employee());
        giveRaise(new Executive());
    }
}

输出

Employee got raise
Executive got raise

在groovy中使用多态

void giveRaise(Employee employee){
    employee.raise(new BigDecimal(10000.00))
}
giveRaise new Employee()
giveRaise new Executive()

输出

Employee got raise
Executive got BigDecimal raise
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • key point Java 和其他语言的比较 什么是Java引用 面向对象的基本特征 封装 继承 多态静态绑定 ...
    andrew7阅读 3,101评论 0 1
  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 4,748评论 0 4
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 5,004评论 0 2
  • 简介使用应用 Groovy语法特性(相比于Java) Groovy与Java项目集成使用GroovyShellGr...
    timestatic阅读 15,191评论 0 7
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 10,148评论 1 114