实验13-抽象类和接口教学教材
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);