实验13 抽象类和接口

  • 格式:doc
  • 大小:34.50 KB
  • 文档页数:3

实验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();

}

}