45 lines
1.4 KiB
Java
45 lines
1.4 KiB
Java
package Test;
|
|
abstract class TaxCalculator {
|
|
protected double income;
|
|
|
|
public TaxCalculator(double income) {
|
|
this.income = income;
|
|
}
|
|
public abstract double calculateTax();
|
|
public double afterTaxIncome() {
|
|
return income - calculateTax();
|
|
}
|
|
}
|
|
class FlatTaxCalculator extends TaxCalculator {
|
|
private static final double RATE = 0.15;
|
|
public FlatTaxCalculator(double income) {super(income);}
|
|
public double calculateTax() {
|
|
return income * RATE;
|
|
}
|
|
}
|
|
|
|
public class TaxApp {
|
|
static class BracketTaxCalculator extends TaxCalculator {
|
|
public BracketTaxCalculator(double income) {
|
|
super(income);
|
|
}
|
|
public double calculateTax() {
|
|
if (income <= 10000) {return income * 0.10;}
|
|
else if (income <= 50000) { return (10000 * 0.10) + ((income - 10000) * 0.20);}
|
|
else { return (10000 * 0.10) + (40000 * 0.20) + ((income - 50000) * 0.30);}
|
|
}
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
double income = 60000;
|
|
|
|
TaxCalculator flat = new FlatTaxCalculator(income);
|
|
double flatTax = flat.calculateTax();
|
|
double flatAfterTax = flat.afterTaxIncome();
|
|
|
|
TaxCalculator bracket = new BracketTaxCalculator(income);
|
|
double bracketTax = bracket.calculateTax();
|
|
double bracketAfterTax = bracket.afterTaxIncome();
|
|
}
|
|
}
|