Discuss / Java / 虽然定义了接口规范,但是每一个子类还是重复定义income变量呀??

虽然定义了接口规范,但是每一个子类还是重复定义income变量呀??

Topic source

public class Main {

public static void main(String[] args) {

// TODO: 用接口给一个有工资收入和稿费收入的小伙伴算税:

Income[] incomes = new Income[] { new BaseIncome(3000), new SalaryIncome(7500), new RoyaltyIncome(12000) };

double total = 0;

// TODO:

for (Income income: incomes) {

total = total + income.getTax();

}

System.out.println(total);

}

}

/**

 * 定义接口Income

 */

public interface Income {

// TODO

double getTax();

}

/**

 * 稿费收入税率是10%

 */

public class BaseIncome implements Income{

// TODO

private double income;

public BaseIncome(double income) {

this.income = income;

}

public double getTax() {

return income * 0.1;

}

}

/**

 * 稿费收入税率是20%

 */

public class RoyaltyIncome implements Income{

// TODO

private double income;

public RoyaltyIncome(double income) {

this.income = income;

}

public double getTax() {

return income * 0.2;

}

}

public class SalaryIncome implements Income{

// TODO

private double income;

public SalaryIncome(double income) {

this.income = income;

}

public double getTax() {

return 0;

}

}

The__Wolf

#2 Created at ... [Delete] [Delete and Lock User]

我也有点奇怪,就相当于是接口类型的incom变量指向了子类类型的实例,和抽象类一样了,这样可以嘛。。

可以先写一个接口,然后写一个抽象类实现接口,再写两个普通类继承抽象类


  • 1

Reply