练习 用抽象类给一个有工资收入和稿费收入的小伙伴算税。
时间: 2024-11-03 07:13:53 浏览: 26
在面向对象编程中,我们可以创建一个抽象类来描述一个有工资收入和稿费收入的小伙伴的基本特征,然后让具体的子类来实现计算税款的方法。这里是一个简单的例子:
首先,我们定义一个名为`IncomeSource`的抽象类,它包含两个属性:`incomeFromSalary` 和 `incomeFromRoyalties`,代表工资和稿费,以及一个抽象方法`calculateTax()`。
```java
abstract class IncomeSource {
double incomeFromSalary;
double incomeFromRoyalties;
abstract double calculateTax();
// 其他可能的方法,如设置收入或获取总收入等
public double getTotalIncome() {
return incomeFromSalary + incomeFromRoyalties;
}
}
```
接着,我们可以为`IncomeSource`创建两个具体子类,比如`Employee`(对应工资收入)和`Author`(对应稿费收入),它们分别实现`calculateTax()`方法:
```java
class Employee extends IncomeSource {
@Override
double calculateTax() {
// 对工资收入计算税收的具体算法...
return incomeFromSalary * taxRateForWages;
}
}
class Author extends IncomeSource {
@Override
double calculateTax() {
// 对稿费收入计算税收的具体算法...
return incomeFromRoyalties * taxRateForRoyalties;
}
}
```
在这里,`taxRateForWages` 和 `taxRateForRoyalties` 可能需要从外部配置或者作为类常量引入,以便根据不同地区或政策调整税率。
最后,你可以通过实例化这些子类,并调用`calculateTax()`方法来为每个收入源计算税费,这体现了多态的优势,即统一操作不同类型的具体对象。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![class](https://img-home.csdnimg.cn/images/20250102104920.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![cpp](https://img-home.csdnimg.cn/images/20250102104920.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)