*撰寫一Managers的衍生類別,裡面有一私有變數BonusRate,型別為float,值為2.5,當中須override ComputeBonus的抽象方法,傳回結果為兩參數相乘後,除12再乘上BonusRate(表示年終獎金為月薪乘以在職月數再乘上獎金月數)
public abstract class Employee
{
public Employee()
{
}
public abstract float ComputeBonus (int MonthSalary, int WorkMonths);
}
public class Managers:Employee
{
private float BonusRate=2.5f;
public override float ComputeBonus(int MonthSalary, int WorkMonths)
{
return MonthSalary*WorkMonths/12*BonusRate;
}
}
public class Domo
{
public static void Main()
{
Managers m1=new Managers();
Console.WriteLine(m1.ComputeBonus(24000,10));
Console.ReadLine();
}
}
定義一名稱為Tax的介面,裡面只有一個CalculateTax的方法,它有兩個參數(總金額total及稅率Rate),傳回型別為double
建立三個類別GoodTax及PublicationTax及PersonalTax,計算CalculateTax的方式分為別:
發票稅=總金額x稅率(5%)
版稅=(總金額-180000)x稅率(10%)
所得稅 =
若 總金額>200000,所得稅=總金額x稅率(6%)
否則 所得稅=(總金額-200000)x(稅率+7%)+12000
在主程式中為此三類別各自建立一個物件,自訂總金額後,顯示各物件的結果
public interface Tax
{
double CalculateTax(double Total,double Rate);
}
public class GoodTax
{
public double CalculateTax(double Total,double Rate)
{
return Total*Rate;
}
}
public class PublicationTax
{
public double CalculateTax(double Total,double Rate)
{
return (Total-180000)*Rate;
}
}
public class PersonalTax
{
public double CalculateTax(double Total,double Rate)
{
if (Total>200000)
return Total*Rate;
else
return (Total-200000)*(Rate+0.07)+12000;
}
}
public class InstanceDomo
{
public static void Main()
{
GoodTax obj1= new GoodTax();
PublicationTax obj2 = new PublicationTax();
PersonalTax obj3 = new PersonalTax();
Console.WriteLine("發票稅="+obj1.CalculateTax(200000,0.05));
Console.WriteLine("版稅="+obj2.CalculateTax(200000,0.1));
Console.WriteLine("所得稅="+obj3.CalculateTax(200000,0.06));
Console.ReadLine();
}
}