public class Main {
public static void main(String[] args){
Income[] incomes = new Income[]{
new Income(0),
new Salary(6000),
new Contribution(4500)
};
System.out.println(totalTax(incomes));
}
public static double totalTax(Income...incomes){
double total = 0;
for (Income income: incomes){
total = total + income.getTax();
return total;
static class Income{
protected double income;
public Income(double income){
this.income = income;
public double getTax() {
return income * 0.1;
static class Salary extends Income{
public Salary(double income){
super(income);
@Override
public double getTax(){
if(income <= 5000){
return 0;
return (income - 5000) * 0.2;
static class Contribution extends Income{
public Contribution(double income){
if(income <= 4000){
return (income - 800)*0.2*(1-0.3);
return (income * 0.8)*0.2*(1-0.3);
Sign in to make a reply
Im袁国伟
public class Main {
public static void main(String[] args){
Income[] incomes = new Income[]{
new Income(0),
new Salary(6000),
new Contribution(4500)
};
System.out.println(totalTax(incomes));
}
public static double totalTax(Income...incomes){
double total = 0;
for (Income income: incomes){
total = total + income.getTax();
}
return total;
}
static class Income{
protected double income;
public Income(double income){
this.income = income;
}
public double getTax() {
return income * 0.1;
}
}
static class Salary extends Income{
public Salary(double income){
super(income);
}
@Override
public double getTax(){
if(income <= 5000){
return 0;
}
return (income - 5000) * 0.2;
}
}
static class Contribution extends Income{
public Contribution(double income){
super(income);
}
@Override
public double getTax(){
if(income <= 4000){
return (income - 800)*0.2*(1-0.3);
}
return (income * 0.8)*0.2*(1-0.3);
}
}
}