码迷,mamicode.com
首页 > 编程语言 > 详细

一个使用enum实现多态的例子

时间:2016-08-03 23:38:44      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

下面的写法与直接 使用静态方法而言,可读性、可维护性更强
是不是有DSL的感觉....

 

当然enum反编译后,的确就是静态方法。

/**
 * Created by MyWorld on 2016/8/3.
 */
public enum Operation {
    PLUS("+") {
        @Override
        public int apply(int x, int y) {
            return x + y;
        }
    }, MINUS("-") {
        @Override
        public int apply(int x, int y) {
            return x - y;
        }
    }, TIMES("*") {
        @Override
        public int apply(int x, int y) {
            return x * y;
        }
    }, DIVIDE("/") {
        @Override
        public int apply(int x, int y) {
            return x / y;
        }
    };

    private String op;

    Operation(String op) {
        this.op = op;
    }

    public abstract int apply(int x, int y);

    public String getOp() {
        return op;
    }

    public void setOp(String op) {
        this.op = op;
    }

    public static void main(String[] args) {
        System.out.println(Operation.PLUS.apply(1, 2));
    }

}

 

感谢刘光聪在简书上的分享

 

一个使用enum实现多态的例子

标签:

原文地址:http://www.cnblogs.com/softidea/p/5734862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!