/** * 定义接口Income */ interface Income { double getTax(); } /** * 定义抽象类IncomeTax */ abstract class IncomeTax implements Income { protected final double income; public IncomeTax(double income) { this.income = income; } @Override public abstract double getTax(); } /** * 工资收入计税 */ class SalaryIncome extends IncomeTax implements Income { public SalaryIncome(double income) { super(income); } @Override public double getTax() { if (income <= 5000) { return 0; } else if (income > 5000 && income <= 10000) { return (income - 5000) * 0.1; } else { return (income - 10000) * 0.2 + 5000 * 0.1; } } } /** * 稿费收入计税 */ class RoyaltyIncome extends IncomeTax implements Income { public RoyaltyIncome(double income) { super(income); } @Override public double getTax() { return income * 0.2; } } public class Main { public static void main(String[] args) { Income[] incomes = {new SalaryIncome(12000), new RoyaltyIncome(5000)}; System.out.println(totalTax(incomes)); } public static double totalTax(Income... incomes) { double total = 0; for (Income income : incomes) { total += income.getTax(); } return total; } }
Sign in to make a reply
韦雪松