Java列舉enum可以有抽象方法! -Recepİnanç

banq發表於2019-11-30

在這篇文章中,我想與大家分享我今天學習到的有關Java中的Enums的一項很棒的功能。也就是說,列舉可以具有抽象方法,並且每個成員都需要實現它。
以下程式碼顯示瞭如何宣告和實現列舉的抽象方法-就像其他任何類一樣:)

enum Calculator
{
    ADD("+") { int calculate(int a, int b) { return a + b; }},
    SUBTRACT("-") { int calculate(int a, int b) { return a - b; }},
    MULTIPLY("*") { int calculate(int a, int b) { return a * b; }},
    DIVIDE("/") { int calculate(int a, int b) { return a / b; }};

    Calculator(String sign)
    {
        this.sign = sign;
    }

    private String sign;

    abstract int calculate(int a, int b); // this is how you declare 

    public String getSign()
    {
        return sign;
    }
}


我建立了以下程式碼片段,以向您展示此功能的示例應用:

public static void main(String[] args)
{
    calculatorTest(4, 2, Calculator.ADD);
    calculatorTest(4, 2, Calculator.SUBTRACT);
    calculatorTest(4, 2, Calculator.MULTIPLY);
    calculatorTest(4, 2, Calculator.DIVIDE);
}

static void calculatorTest(int a, int b, Calculator operation) {
    System.out.println(a + " " + operation.getSign() + " " + b + " = " + operation.calculate(a, b));
}


 

相關文章