Java接口的default關鍵字用法解釋


// Main.java
public class Main {
    public static void main(String[] args) {
        // TODO
        Income salary = new SalaryIncome(10000);
        Income royalty = new RoyaltyIncome(20000);
        double totalTax = salary.getTax() + royalty.getTax();
        System.out.printf("總計繳稅額是:%.2f", totalTax);
    }
}

// Income.java
interface Income {
    default double getTax() {
        return 100.02;
    };
}

// SalaryIncom.java
public class SalaryIncome implements Income{
    protected double income;
    // 構造方法
    public SalaryIncome(double income) {
        this.income = income;
    }
}

// RoyaltyIncome.java
public class RoyaltyIncome implements Income{
    protected double income;
    public RoyaltyIncome(double income) {
        this.income = income;
    }
    
    @Override
    public double getTax() {
        return income * 0.2;
    }
}


/*對於default我的理解是,正常不使用default定義方法的話,繼承該interface的子類都必須重寫所有的抽象方法,但是如果在interface中通過default定義了一個方法,那么這個方法不是子類所必須重寫的。
*/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM