实验13-抽象类和接口教学教材

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

相关文档
最新文档