Files
Software-Analysis/Test/BadTaxApp.java

46 lines
1.3 KiB
Java
Raw Normal View History

2025-09-27 23:11:10 -06:00
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()
}
}