/**
* 多态
*
* @author Administrator
*/
public class PolymorphicExample {
public static void main(String[] args) {
// TODO: 给一个有工资收入和稿费收入的小伙伴算税:
Income[] incomes = new Income[] { new Income(3000),
new SalaryIncome(7500), new RoyaltyIncome(12000) };
double total = 0;
// TODO:
total = totalTax(incomes);
System.out.println(total);
}
public static double totalTax(Income... incomes) {
for (Income income : incomes) {
total = total + income.getTax();
return total;
* 收入
public class Income {
protected double income;
public Income(double income) {
this.income = income;
public double getTax() {
return income * 0.1; // 税率10%
* 稿费收入税率是20%
public class RoyaltyIncome extends Income {
// TODO
public RoyaltyIncome(double income) {
super(income);
@Override
return income * 0.2; // 税率20%
* 工资收入
public class SalaryIncome extends Income {
public SalaryIncome(double income) {
if (income <= 5000) {
return 0;
return (income - 5000) * 0.2;
Sign in to make a reply
狠美味2013
/**
* 多态
*
* @author Administrator
*
*/
public class PolymorphicExample {
public static void main(String[] args) {
// TODO: 给一个有工资收入和稿费收入的小伙伴算税:
Income[] incomes = new Income[] { new Income(3000),
new SalaryIncome(7500), new RoyaltyIncome(12000) };
double total = 0;
// TODO:
total = totalTax(incomes);
System.out.println(total);
}
public static double totalTax(Income... incomes) {
double total = 0;
for (Income income : incomes) {
total = total + income.getTax();
}
return total;
}
}
/**
* 收入
*
* @author Administrator
*
*/
public class Income {
protected double income;
public Income(double income) {
this.income = income;
}
public double getTax() {
return income * 0.1; // 税率10%
}
}
/**
* 稿费收入税率是20%
*
*/
public class RoyaltyIncome extends Income {
// TODO
public RoyaltyIncome(double income) {
super(income);
}
@Override
public double getTax() {
return income * 0.2; // 税率20%
}
}
/**
* 工资收入
*
* @author Administrator
*
*/
public class SalaryIncome extends Income {
public SalaryIncome(double income) {
super(income);
}
@Override
public double getTax() {
if (income <= 5000) {
return 0;
}
return (income - 5000) * 0.2;
}
}