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

合集下载

实验-抽象类和接口

实验-抽象类和接口

实验-抽象类和接⼝学⽣实验报告课程:实验指导教师:系别:班级:实验⽇期:年⽉⽇实验地点:姓名:学号:⼀、实验名称:抽象类和接⼝实验概述:【实验⽬的及要求】1 ⼦类的继承性2⼦类对象的创建过程3成员变量的继承和隐藏4⽅法的继承和重写【实验环境】(使⽤的软件)Eclipse实验内容:【实验过程】(实验步骤、记录、数据、分析)实验内容:⼀、有⼀个abstract类,类名为Employee。

Employee的⼦类有YearWorker,MonthWorker 和WeekWorker。

YearWorker对象按年领取薪⽔,MonthWorker对象按⽉领取薪⽔,WeekWorker对象按周领取薪⽔。

Employee类有⼀个抽象⽅法:public abstract double earnings( );⼦类必须重写⽗类的earnings⽅法,给出各⾃领取报酬的具体⽅式。

有⼀个Company类,该类⽤employee数组作为成员,employee数组的成员可以是YearWorker对象的上转型对象、MonthWorker对象的上转型对象或WeekWorker对象的上转型对象。

程序能够输出Company对象⼀年需要⽀付的薪⽔总额。

程序模板按模板要求,将【代码1】~【代码4】替换为Java程序代码。

HardWork.javaabstract class Employee{public abstract double earnings( );}class YearWorker extends Employee{【代码1】// 重写earnings( )⽅法}class MonthWorker extends Employee{【代码2】// 重写earnings( )⽅法}class WeekWorker extends Employee{【代码3】// 重写earnings( )⽅法}class Company{Employee[ ] employee;double salaries=0;Company(Employee[ ] employee){this.employee=employee;}public double salariesPay( ){salaries=0;【代码4】// 计算salariesreturn salaries;}}public class HardWork{public static void main(String args[ ]){Employee[ ] employee=new Employee[20]; for(int i=0;i{if(i%3==0)employee[i]=new WeekWorker( );else if(i%3==1)employee[i]=new MonthWorker( );else if(i%3==2)employee[i]=new YearWorker( );}Company company=new Company(employee);System.out.println("公司年⼯资总额:"+company.salariesPay( ) );}}问题:1、⼦类YearWorker如果不重写⽗类的earnings( )⽅法,程序编译时会提⽰怎样的错误?⼆、有⼀个ComputeTotalSales接⼝,该接⼝中有⼀个⽅法:public double totalSalesByYear( );有三个实现该接⼝的类:Television、Computer和Mobile。

抽象类和接口PPT课件

抽象类和接口PPT课件
第10章 抽象类和接口
10.1 引言 10.2 抽象类 10.3 日历类Calendar和公历类GregorianCanlendar 10.4 接口
10.5 将基本数据类型值处理为对象
10.6 基本类型和包装类之间的自动转换
10.1 引言
抽象类:将父类设计得非常抽象,让它包含所有子类的共同 属性、方法,以至于它没有具体的实例。
Shape
例3
TwoDimensionalShape
Circle Triangle Rectangle
ThreeDimensionalShape
Cube Sphere
Tetrahedron
Square
例4
Lease
Mortgage
Loan
HouseLoan
CarLoan


贷款(Loan)分为许多种类,如租借(Lease)、抵押 (Mortgage)、房屋贷款(HouseLoan)、汽车贷款(CarLoan) 等 将Loan声明为抽象类,并指定所有的子类对象都应具有的行 为,如计算月还款值(calculateMonthlyPayment),还款 (makePayment),取得客户信息(getClientInfo),其中前两 个因贷款种类不同计算方法也不同,可声明为抽象方法, Loan的所有子类都必须对这两个抽象方法进行重写
}
类ng.String和Java.util.Date都实现了Comparable接口 public final class String extends Object implements Serializable, Comparable, CharSequence{ public int compareTo(String anotherString){ …… } } public class Date extends Object implements Serializable, Cloneable, Comparable{ public int compareTo(Date anotherDate){ …… } }

抽象与接口实验指导

抽象与接口实验指导

实验四抽象与接口一、实验目的1、理解抽象类与子类的关系,实现继承操作,构造类族;2、正确使用抽象类和子类实现多态操作;3、理解接口的意义,并实现行为的多态;4、理解了解抽象类、类以及接口三者的异同以及使用场合。

5、掌握UML基本用法和画法,并能根据题目描述画出类、接口、类之间的关系。

6、掌握基本的文件操作。

二、参考参考教材第13章;三、实验步骤1、阅读给出的题目描述;2、根据题目描述,画出类(类名,属性、方法)、类之间的关系3、先写出各部分的注释(常见的注释有:类或接口的功能注释;类的继承关系;类对接口的实现;类的属性注释和方法的功能注释;类方法的入口参数和返回值注释、选择结构和循环结构注释);4、书写代码,首先保证无语法错误、类的使用错误、类的继承错误、接口的实现错误;5、测试代码并修正代码中的可能的逻辑错误;6、在规定的最后期限前提交代码。

四、题目描述1、改写课本程序清单13-2中的Circle类,它继承自GeometricObject并实现Comparable 接口。

重写Object类中的equals方法,当两个Circle对象半径相等时,则认为这两个Circle 对象是相等的。

2、考虑农夫过河问题:一个农夫带着一匹狼、一只羊、一颗白菜要过河,河上只有一条船能够渡河,而且农夫每次最多只能带一个动物或物品过河。

当农夫不在的时候狼会吃羊,羊会吃白菜。

请设计程序,由用户选择角色过河,系统自动判断游戏的胜负:当出现有生物被吃掉的时候,游戏失败,所有角色都到了河的另一边,游戏成功。

要求在结构设计中必须使用抽象类和接口。

界面交互参考代码如下,其它的类由用户自行设计:import java.util.Scanner;public class Client {public static void menu(){System.out.println("==================Please choose operation============");System.out.println("\t==========1:Cross the river alone===========");System.out.println("\t==========2:Cross the river with wolf=========");System.out.println("\t==========3:Cross the river with sheep============");System.out.println("\t==========4:Cross the river with cabbage==========");System.out.println("\t==========0:Quit===============");System.out.println("===================================================");System.out.println("Input the number(0~4):");}public static void show(){/* 输出农夫、各种动物、物品的状态(生存、位置) */}public static void main(String[] args) {// TODO Auto-generated method stubScanner input = new Scanner(System.in);int choice = 0;boolean gamevoer=false,win=false;while(!gamevoer){menu();choice = input.nextInt();switch(choice){case 0: gamevoer=true;break;case 1:/* 农夫独自过河的处理 */break;case 2:/* 农夫带狼的处理 */break;case 3:/* 农夫带羊的处理 */break;case 4:/* 农夫带白菜的处理 */break;}}if(win) {System.out.println("game over: you win !");}else {System.out.println("game over: you lose !");}}}变化:游戏要求可能发生变更,比如农夫更换了动物、蔬菜或者其它物品,要带狐狸(吃兔子)、兔子(吃胡萝卜)、胡萝卜过河,请设计合适的类和接口以适应游戏的变更。

第5章 抽象类、接口和内部类PPT教学课件

第5章 抽象类、接口和内部类PPT教学课件
2.接口中不能有已经实现的方法;抽象类中可以有已经实现的方法。
计算周长
}
2020/12/12
10
5.2.1接口的定义 接口定义的一般格式如下: <访问符> interface 接口名 {
[访问符] 数据类型 成员名称 = 常量 ; [访问符] <返回类型> 方法名([参数列表]);
}
2020/12/12
11
5.2.2接口的实现 利用接口打造新类的过程,称之为接口的实现。每一个由接
实例5-4定义一个接口,在该接口声明计算周长和面积 的方法。
代码如下:
package interface_class;
public interface Shape {
public abstract double area(); // 抽象方法,计算
面积
public abstract double perimeter(); // 抽象方法,
3.含有抽象方法的类必须被声明为抽象类,抽象类的子 类必须复写所有的抽象方法后才能被实例化,否则这个 子类还是个抽象类。
4.抽象类不能被实例化,也就是不能用 new 关键字去产 生对象。
2020/12/12
6
5.1.2抽象类的使用 定义抽象类的目的是提供可由子类共享的一般形式,子类可以根据自
身需要扩展抽象类。
2020/12/12
ቤተ መጻሕፍቲ ባይዱ
12
5.2.3接口的继承 接口与一般类一样,可通过继承的技术来派生出新的接口。
原来的接口称为基本接口或父接口,派生出的接口称为派 生接口或子接口。通过这种机制,派生接口不仅可以保留 父接口的成员,同时也可加入新的成员以满足实际的需要 。

实验13 抽象类和接口

实验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元则显示“providea loan”信息。

第二题:定义一个抽象类Bank,它包含有oneyearRate(定期利率)、oneyearNationaldebt(国债利率)和interestRate(活期利率)常数和count()方法及show()方法。

Count()方法用语对本息合计(存款本金+利息)进行计算,而show()方法用于对本息合计进行显示。

由于对不同的存款方式,利率是不同的,因此此程序分别定义多个子类实现对抽象类的继承,实现对利率的计算和显示。

注意:本程序定义了定期利率、活期利率、国债利率三种利率,按照一万元钱位存款单位进行统计,计算每种利率下存款一年后的本息合计。

面向对象程序设计与实践-Java抽象类和接口[33页]

面向对象程序设计与实践-Java抽象类和接口[33页]

5-1关联知识
抽象类
抽象类在类层次结构中代表一般性概念,规定必须实现方法的统一接口,子类将基于此概念来定义方 法,定义方法如下:
abstract class 类名{ 数据成员; //定义抽象方法,没有方法体实现 abstract 返回值数据类型 抽象方法名(); 访问权限 返回值数据类型 成员方法名(形式参数列表){ …方法实现 }
• 允许一个类实现多个特定的接口。 • 如果一个非抽象类要实现某个接口,就必须实现该接口中的所有方法。 • 定义了实现某个接口的抽象类,可以不实现该接口中的抽象方法。 • 如果定义的类同时继承类和实现接口,那么extends要放在implements的前面。
5-2关联知识
接口实现实例
5-2关联知识
int id=1;
//等价于 public final static int id = 1;
public void start();
//等价于 public abstract void start();
public void run();
public void stop();
} 接口还能继承接口(可以继承多个):
课堂练习
1、定义一个“点”(Point)类用来表示三维空间中的点,要求如下: 1)可以生成具有特定坐标的点对象 2)提供可以设置三个坐标的方法 3)提供可以计算该“点”到原点距离平方的方法 4)编写程序验证上述三条
2、在已有的Circle类中添加一个方法,该方法计算一个点(上述1中的Point对象)是否在圆 (Circle对象)内,并编写程序验证
5-1案例实现
5-1案例实现
开发人员
项目经理
地区经理
5-1案例小结
抽象类的定义

抽象类和接口 教案

抽象类和接口 教案
抽象类的写法:
作用域修饰符abstract class类名{

抽象方法的写法:
作用域修饰符abstract返回值方法名(){

注:
1、一个类是一个抽象类的子类,它必须具体实现父类的抽象方法,否则子类也是抽象类。
2、一个类中含有抽象方法,那么这个类必须是抽象类。
3、抽象类只关心它的子类是否具有某种功能,并不关心功能的具体行为,功能的具体行为由子类负责实现,抽象类可以实以不实现,但是子类也要是抽象类
接口可以继承多个接口,抽象类单继承。
接口所有成员都是公共的,抽象类可以有私有方法和变量的。
二、访问修饰符的作用
当前类
包中的子类
包中的其它类
包外的子类
包外的其它类
private(私有)





默认





Protected
(受保护)





public(公有)





注:只有默认和public可以修饰类。被public修饰的类的类名必须和文件名一样
Ex:为什么要有这些访问修饰符?如同人的血液,是供自己使用的。如果所有人都可以使用你的血液,就离死不远了。
4、接口的概念及接口的使用
5、抽象类与接口的共性与区别
一、包的概念
包:是类的容器,用来保存划分的类名空间
包的特点:
1、可以创建多个名称一样的类
2、可以把类名空间划分为更多易管理的块的功能
包的格式:
Package包名{
//需要调用的包和包下面的类

包的调用:

抽象类和接口学习指导书

抽象类和接口学习指导书

第一单元抽象类和接口学习指导书一:学习目标二:重难点知识点1 、重难点1:抽象类和接口的概念、区别学习方法1.1 抽象类概念在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。

并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

比如:如果我们进行一个图形编辑软件的开发,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域是不存在的,它就是一个抽象概念。

正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。

举例:动物都有叫的方法,但是叫的方法不一样,但是动物吃的方法类似。

abstract class animal{abstract void shout();void eat(String food){System.out.println("我在吃"+food);}}class dog extends animal{void shout{//wang wang…}}class cat extends animal{void shout{// miao miao…}}1.2 接口概念一个接口表示:“所有实现了该特定接口的类看起来都像它”。

因此,任何使用某特定接口的代码都知道可能会调用该接口的那些方法,而且仅需知道这些。

因此,接口被用来建立类与类之间的“协议”。

Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

如果抽象类中所有的方法都是抽象方法,就可以使用Java提供的接口来表示。

面向对象-抽象类和接口PPT教学课件

面向对象-抽象类和接口PPT教学课件
面向对象8——抽象类和接口
2020/12/09
1
大纲
抽象方法与抽象类 接口定义、接口的实现 接口的继承
2020/12/09
2
引入
sayHello People
Chinese American Japanese
每个子类重写了父类的sayHello的方法,父类 中sayHello的方法的实现没有什么实际意义, 只是起到“占位符”作用。
能的类,都可以继承这个属性并在类中使用它,这种属性集合就 是接口。利用接口,java程序可以实现类似于多重继承的网状 层次结构。
2020/12/09
8
接口
Java不支持多继承性,即一个类只能有 一个父类。单继承性使得Java简单,易 于管理程序。为了克服单继承的缺点, Java使用了接口,一个类可以实现多个 接口。
2020/12/09
6
接口
交通工具
陆上
卡车
自行车
海上
轮船
皮划艇
空中 滑翔机
喷气机
交通工具类的树状结构
2020/12/09
7
接口
可燃油的
交通工具
陆上
卡车
自行车
海上
轮船
皮划艇
空中
喷气机
滑翔机
实现了接口后类似于网状的类层次结构
为了更符合实际问题的本质,编程者可以把用于完成特定功能的
若干属性组织成相对独立的属性集合;凡是需要实现这种特定功
}
Eaptaubblleicavpopilde=enaet(w){ Apple("红苹果");
}
apSpyles.teeamt(.)o; ut.println (name+",要削皮吃哦");

java抽象类和接口讲义

java抽象类和接口讲义

}
总结接口特征:
• 接口中的方法可以有参数列表和返回类型,但不 能有任何方法体。 • 接口中可以包含字段,但是会被隐式的声明为 static和final。 • 接口中的方法可以被声明为public或不声明,但结 果都会按照public类型处理。 • 当实现一个接口时,需要将被定义的方法声明为 public类型的,否则为默认访问类型,Java编译 器不允许这种情况。 • 扩展一个接口来生成新的接口应使用关键字 extends,实现一个接口使用implements。
• ConstantsTest c=new ConstantsTest(); • c.cha();
• }
• }
总结
请指出下列Java代码中的错误。
public interface Introduceable { public String detail(); public void introduction(){ detail(); } private void showMessage(); void speak(); } Java接口中不能有方法体实现
程序实例
interface Computer {
定义出接口, 实现只给出 功能的描述
public void ComputeData(); //计算机应该有数据计算的功能 public void SaveData(); //计算机应该有存储数据的功能 public void PrintData(); //计算机应该有打印数据的功能 public void DisplayData(); //计算机应该有显示数据的功能
interface 接口名称 [extends 父接口1,父接口2..]{ …… //方法原型或静态常量 }//接口可以从多个父接口中继承 接口本身也具有数据成员与方法,但数据成员 一定要赋初值,且为常量,因此此值将不能再更改

C++教学课件抽象类与接口

C++教学课件抽象类与接口

方法中的内嵌类
public class OuterTwo { private int x=3; public void OuterMethod( int m ) { final int n=x+2; n=x+2; class InnerTwo { //方法内的内嵌类 //方法内的内嵌类 private int y=5; public void innerMethod() { 只能访问外部 方法中的常量 System.out.println("y is "+y); 带final修饰) 修饰) ( 修饰 System.out.println("n is "+n); "+n System.out.println("x is "+x); //内嵌类结束 } } //内嵌类结束

8.2.1 接口定义
[public] interface 接口名 [extends 父接 口名列表 ] { [public] [static] [final] 域类型 域名 = 常量值 ; 方法名( [public] [abstract] 返回值 方法名(参 数列表) 异常列表] 数列表) [throw 异常列表]; } 声明接口可给出访问控制符; 声明接口可给出访问控制符; 一个接口还可以继承多个父接口, 一个接口还可以继承多个父接口,父接口 间用逗号分隔。 间用逗号分隔。
定义矩形
class Rectangle extends Shape { //定 //定 义矩形 private double width, height; public Rectangle(double j, double k) { width = j; height = k; } public double area() { return width * height;

课件-Lecture09-抽象类和接口

课件-Lecture09-抽象类和接口

8
面向对象程序设计-Object Oriented Programming
3 Calendar与GregorianCalendar(13.4)
java.util.Date, 表示特定的瞬间, 精确到毫秒. java.util.Calendar, 抽象类, 为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法, 并为操作日历 字段提供了一些方法. java.util.GregorianCalendar, 是 Calendar的一个 具体子类,提供了世界上大多数国家/地区使用的标 准日历系统。
Date[] dates = {new Date(1000), new Date(0), new Date() }; Arrays.sort(dates); //sort使用Comparable接口的compareTo
13
面向对象程序设计-Object Oriented Programming
4 接口
3
面向对象程序设计-Object Orient 越 抽 象
概 念 越 来 越 具 体
4
面向对象程序设计-Object Oriented Programming
2 抽象类(13.2)
抽象方法: 只有方法头没有方法体.用abstract修饰. 抽象类: 用abstract修饰的类, 不能用new创建对象. public abstract class TheAbstarctClass{ …… public abstract void abstractMethod(); …… }
4 可克隆接口Cloneable
House.java中实现的是 “浅复制”, 而不是 “深复制”.

Java面向对象实验指导书抽象类接口多态

Java面向对象实验指导书抽象类接口多态

Java程序设计基础实验指导书——面向对象3 一、实验目的:通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想,掌握面向对象程序设计的方法,掌握类的继承性和多态性的作用,掌握接口的作用。

二、实验内容:1、抽象类练习。

按照上图要求完成程序。

import java.awt.*;import java.applet.*;abstract class Shapes{public int x,y; //x,y为画图的坐标public int width,height;public Shapes(int x,int y,int width,int height){this.x=x;this.y=y;this.width=width;this.height=height;}abstract double getArea();abstract double getPerimeter();}完成程序。

2、接口练习。

将上例改为接口程序。

3、将例2改为既有继承类又有接口的程序。

(放入不同的包中)4、理解接口的应用。

⑴interface ShowMessage{void show(String s);}class TV implements ShowMessage{public void show(String s){System.out.println(s+"电视");}}class PC implements ShowMessage{public void show(String s){System.out.println(s+"计算机");}}public class InterfaceDemo{public static void main(String args[]){ShowMessage sm; //声明接口变量sm=new TV(); //接口变量中存放对象的引用sm.show("TCL牌电视机");sm=new PC();sm.show("IBM PC机");}}⑵interface SpeakHello{ void speakHello();}class Chinese implements SpeakHello{public void speakHello(){System.out.println("中国人习惯说:你好,吃饭了吗?");}}class English implements SpeakHello{ public void speakHello(){System.out.println("英国人习惯说:你好,天气不错");} }class KindHello{public void lookHello(SpeakHello hello) //接口类型参数{hello.speakHello();}//接口回调}public class InDemo{public static void main(String args[]){KindHello k=new KindHello();k.lookHello(new Chinese());k.lookHello(new English());}}5、引用形变量的转换。

  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);
debt.show();
InterestRateCalcute interest=new InterestRateCalcute(mon);
interest.show();
}
}。

相关文档
最新文档