实验13-抽象类和接口
试验13 接口 一、试验目的 (1)熟识接口的定义方法。 (2)了解Java语言实现多继承的途径。 二、试验内容 第一题: 学校中有老师和学生两类人,而在职探讨生既是老师又是学生,对学生的被管理和对于 老师的责任管理在他们身上都有体现。 (1)设计两个信息管理接口StudentManageInterface和TeacherManageInterface。其中, StudentInterface接口包括setFee( )方法和getFee( )方法,分别用于设置和获得学生的学费: TeacherInterface接口包括setPay( ) 方法和getPay( ) 方法,分别用于设置和获得老师的工资。 (2)定义一个探讨生类Graduate,实现StudentInterface接口和TeacherInterface接口,它 定义的成员变量有name(姓名)、sex(性别)、age(年龄)、fee(每学期学费)、pay(月工资)。 (3)创建一个姓名为“zhangsan“的探讨生,统计他的年收入和学费,假如收入减去学 费不足2000元,则输出“provide a loan”(须要贷款)信息。 要求: (1)在Graduate中实现各个接口定义的抽象方法。 (2)对年学费和年收入进行统计,用收入减去学费,假如小于2000元则显示“provide a loan”信息。 其次题: 定义一个抽象类Bank,它包含有oneyearRate(定期利率)、oneyearNationaldebt(国债利率)和interestRate(活期利率)常数和count()方法及show()方法。Count()方法用语对本息合计(存款本金+利息)进行计算,而show()方法用于对本息合计进行显示。由于对不同的存款方式,利率是不同的,因此此程序分别定义多个子类实现对抽象类的继承,实现对利率的计算和显示。 留意: 本程序定义了定期利率、活期利率、国债利率三种利率,根据一万元钱位存款单位进行统计,计算每种利率下存款一年后的本息合计。除了国债外,其他利率都要交纳个人所得税20%。 abstract class Bank { protected static final float oneyearRate=0.0178f; //定期利率 protected static final float oneyearNationaldebt=0.0198f; //国债利率 protected static final float interestRate=0.0078f;//活期利率 abstract void count(); abstract void show(); } class InterestRateCalcute extends Bank { private float saving; private double sum; InterestRateCalcute(float i) { saving=i;count(); } public void count(){ sum=saving+(saving*Bank.interestRate*0.8); //税后总金额 } public void show() { System.out.println(“ With current interest rate, sum= “+sum); } } class OneyearNationaldebtCalcute extends Bank { private float saving; private double sum; OneyearNationaldebtCalcute(float i) { saving=i; count(); } public void count() { sum=saving+(saving*Bank.oneyearNationaldebt); } public void show() { System.out.println(“ With national debt rate, sum= “+sum); } } class OneyearRateCalcute extends Bank { private float saving; //原存款金额 private double sum; //1年后的总金额 OneyearRateCalcute(float i) { saving=i; count(); } public void count() //实现count()方法 { sum=saving+(saving*Bank.oneyearRate*0.8); //税后总金额 } public void show() //实现show()方法 { System.out.println(“ With fixed rate, sum=“+sum); } } class Calculate { public static void main(String args[]) { int mon=10000; OneyearRateCalcute rate=new OneyearRateCalcute(mon); rate.show(); OneyearNationaldebtCalcute debt=new OneyearNationaldebtCalcute(mon); debt.show(); InterestRateCalcute interest=new InterestRateCalcute(mon); interest.show(); } }