1. 程式人生 > 實用技巧 >利用抽象類給一個有工資收入和稿費收入的小夥伴算稅

利用抽象類給一個有工資收入和稿費收入的小夥伴算稅

class AbstarctClass
{
    public static void main(String[]args)
    {
        // TODO: 用抽象類給一個有工資收入和稿費收入的小夥伴算稅:
        Income[] incomes = new Income[] {new SalaryIncome(7500), new RoyaltyIncome(12000) };
        double total = 0;
        // TODO:
        for (Income in:incomes)
        {
            total += in.getTax();
        }
        System.out.println(total);
    }
}
/**
 * 計稅的抽象類
 */
abstract  class Income
{
    protected double income;

    public Income(double income)
    {
        this.income = income;
    }
    public abstract double getTax();
}
/**
 * 工資計稅
 */
class SalaryIncome extends Income
{
    public SalaryIncome(double income)
    {
        super(income);
    }

    @Override
    public double getTax()
    {
        if (this.income <= 5000) {
            return 0;
        }
        return (this.income - 5000) * 0.2;
    }
}
/**
 * 稿費計稅
 */
class RoyaltyIncome extends Income
{
    public RoyaltyIncome(double income)
    {
        super(income);
    }

    @Override
    public double getTax()
    {
        return this.income * 0.1;
    }
}