Discuss / Java / 构造方法前不能写任何返回类型。。。

构造方法前不能写任何返回类型。。。

Topic source
public class Tax2{
    public static void main(String[] args){
        //用抽象类计算工资收入和稿费收入        
        Income[] incomes = new Income[]{new Gongzi(8000),new Gaofei(32500)};
        System.out.println(total(incomes));    
    }

    public static double total(Income...incomes){
        double tmp = 0;        
        for(Income income:incomes){
            tmp += income.getTax();        
        }
        return tmp;    
    }
}

abstract class Income{
    protected double income;    
    public Income(double income){
        this.income = income;    
    }
    public abstract double getTax();
}

class Gongzi extends Income{
    public  Gongzi(double income){
        super(income);    
    }

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

class Gaofei extends Income{
    public  Gaofei(double income){
        super(income);    
    }

    @Override
    public double getTax(){
        if(income < 4000){
            return (income - 800) * 0.7 * 0.2;        
        }
        return income * (1 - 0.2) * 0.7 *0.2;    
    }
}

  • 1

Reply