Discuss / Java / 5.4 接口作业

5.4 接口作业

Topic source

ANGERIED

#1 Created at ... [Delete] [Delete and Lock User]
import java.util.ArrayList;
import java.util.List;

/** * Learn Java from https://www.liaoxuefeng.com/ * * @author liaoxuefeng */public class Main {

    public static void main(String[] args) {
        // TODO: 用接口给一个有工资收入和稿费收入的小伙伴算税:        //Income[] incomes = new Income[]{new SalaryIncome(7500), new RoyaltyIncome(12000)};        List incomes = new ArrayList();

        incomes.add(Income.income);

        incomes.add(new SalaryIncome(7500));

        incomes.add(new RoyaltyIncome(12000));

        double total = 0;
        // TODO:        for (Object income : incomes) {
            if (!(income instanceof Income)) {
                total += (double) income;
            }
            if (income instanceof Income i) {
                total += i.getTax();
            }
        }
        System.out.println(total);
    }
}

interface Income {

    // TODO    public static final Double income = 3000.00;

    double getTax();

}

class SalaryIncome implements Income {

    // TODO    double income;

    public SalaryIncome(double income) {
        this.income = income;
    }

    @Override    public double getTax() {
        if (income <= 5000) {
            return 0;
        }
        return (income - 5000) * 0.2;
    }
}

/** * 稿费收入税率是20% */class RoyaltyIncome implements Income {

    // TODO    double income;

    public RoyaltyIncome(double income) {
        this.income = income;
    }

    @Override    public double getTax() {
        return (income * 0.2);
    }
}



  • 1

Reply