Java继承与多态(抽象类和接口练习)定义抽象类Bank,它包含oneyearRate(一年定期利率)oneyearNationalbebt(一年国债利率)和CurrentDepositRate(按年
定义抽象类Bank,它包含oneyearRate(一年定期利率)oneyearNationalbebt(一年国债利率)和CurrentDepositRate(按年计算的活期利率)三个利息率常数(分别为1.75%,2.0%,0.35%),本金Principal=1000, 设计 count()方法及show()方法。count()方法用于计算存款一年所的利息及缴利息税后的总金额(原存款额+税后利息),而show()方法用于显示总金额。
由于定期存款、活期存款和国债利率不同,要求定义3个类,分别表示这3种储蓄。3个类都继承抽象类Bank,实现Bank中的count()及show()抽象方法,完成对利息和总金额的计算和显示功能(本金1000元)。
注意:除国债外,定期存款和活期存款利息都要交纳20%的个人所得税。
源代码
abstract public class Bank {double oneyearRate=0.0175; //一年定期利率double oneyearNationalbebt=0.02; //一年国债利率double CurrentDepositRate=0.0035; //按年计算的活期利率double Principal=1000; //本金abstract double count(); //计算存款一年所得利息及缴利息税后的总金额abstract void show(); //显示总金额
}public class CurrentDeposit extends Bank{double count(){double interest;interest=(1-0.2)*CurrentDepositRate;return Principal*(1+interest);}void show() {System.out.println("定期存款后总金额:"+count());}
}public class Test {static Bank[] deposit= {new TimeDeposit(),new CurrentDeposit(),new TreasuryRates()};public static void main(String[] args) {for(int i=0;i<deposit.length;i++) {deposit[i].show();}}
}public class TimeDeposit extends Bank{double count(){double interest;interest=(1-0.2)*oneyearRate;return Principal*(1+interest);}void show() {System.out.println("定期存款后金额:"+count());}
}public class TreasuryRates extends Bank{double count(){return Principal*(1+oneyearNationalbebt);}void show() {System.out.println("国债后金额:"+count());}
}
运行结果
(2)将bank改为接口重新完成
public interface Bank {double oneyearRate=0.0175; //一年定期利率double oneyearNationalbebt=0.02; //一年国债利率double CurrentDepositRate=0.0035; //按年计算的活期利率double Principal=1000; //本金double count(); //计算存款一年所得利息及缴利息税后的总金额void show(); //显示总金额
}public class CurrentDeposit implements Bank{public double count(){double interest;interest=(1-0.2)*CurrentDepositRate;return Principal*(1+interest);}public void show() {System.out.println("定期存款后金额:"+count());}
}public class Test {static Bank[] deposit= {new TimeDeposit(),new CurrentDeposit(),new TreasuryRates()};public static void main(String[] args) {for(int i=0;i<deposit.length;i++) {deposit[i].show();}}
}public class TimeDeposit implements Bank{public double count(){double interest;interest=(1-0.2)*oneyearRate;return Principal*(1+interest);}public void show() {System.out.println("定期存款后金额:"+count());}
}public class TreasuryRates implements Bank{public double count(){return Principal*(1+oneyearNationalbebt);}public void show() {System.out.println("国债后金额:"+count());}
}
Java继承与多态(抽象类和接口练习)定义抽象类Bank,它包含oneyearRate(一年定期利率)oneyearNationalbebt(一年国债利率)和CurrentDepositRate(按年相关推荐
- Java继承和多态--笔记本USB接口案例
首先我们创建一个接口要求有打开和关闭两种方法. public interface USB {void open();// 打开设备void close();// 关闭设备 } 再创建一个笔记本类包括开 ...
- java继承和多态的实验报告_Java继承与多态实验报告.doc
Java继承与多态实验报告 西 安 邮 电 大 学 (计算机学院) 课内实验报告 实验名称: 继承与多态 专业名称: 计算机科学与技术 班 级: 计科1405班 学生姓名: 高宏伟 学 号: 指导教师 ...
- 头歌实践-Java继承与多态
头歌实践作业 第1关:练习-Java继承和多态之final关键字 第2关:学习-Java继承和多态之对象类型的转换 任务描述 相关知识 向上转型 向下转型 编程要求 第3关:练习-Java继承和多态之 ...
- 学习-Java继承和多态之子类继承性
第1关:学习-Java继承和多态之子类继承性 任务描述 相关知识 编程要求 测试说明 任务描述 本关任务:定义一个 Dog 类,继承 Animal 类(Animal 类已经定义),定义自己的性别属性, ...
- 学习-Java继承和多态之方法重载
第1关:学习-Java继承和多态之方法重载 任务描述 相关知识 编程要求 测试说明 任务描述 本关任务:使用重载方法为 Student 类创建三个构造方法. 相关知识 Java 中重载是指一个类中可以 ...
- 学习-Java继承和多态之子类对象特点
第1关:学习-Java继承和多态之子类对象特点 任务描述 相关知识 子类对象的特点 instanceof 运算符 编程要求 测试说明 任务描述 本关任务:使用 instanceof 运算符判断所指对象 ...
- 学习-Java继承和多态之final关键字
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 题目:学习-Java继承和多态之final关键字. 任务:调试代码,对代码进行增添.删除和修改等操作,使得程序能够正常运行,输出结果请 ...
- visual C#(十三)创建接口和定义抽象类
参考书:< visual C# 从入门到精通> 第二部分 理解C#对象模型 第13章 创建接口和定义抽象类 文章目录 13.1 理解接口 13.1.11 定义接口 13.1.2 实现接口 ...
- java面向对象编程_包_继承_多态_重载和重写_抽象类_接口_this和super
目录点击跳转 包 包的命名方法 导入包中的类 系统包的介绍 **注意事项** 继承 基础知识 构造方法 **基础语法** `protected`修饰符 组合 `this`和`super`关键字 `th ...
- java口径_关于JAVA继承、多态、抽象类、接口等性质的学习(3)
抽象类:abstract class 接 口:interface 在java的类中,只要有一个方法为抽象方法,那么该类就是抽象类.换句话说,抽象类可以提供部分方法的具体实现,这一点在接口中是不被允 ...
最新文章
- Ajax方式上传文件报错Uncaught TypeError: Illegal invocation
- linux c 打印错误信息error errno perror和strerror的区别
- Python调用C/C++的种种方法
- 自己的模块给其他人调用是怎么打包的_webpack实战——模块打包
- [CODEVS 1285] 宠物收养所
- 重庆大学光电工程学院 贾旭滨 对 “句柄” “指针” 有下面的描述(AfxGetMainWnd GetSafeHwnd() AfxGetAppName() AfxGetThread)...
- boost::mpi::cartesian_topology相关用法的测试程序
- [html] HTML5如何播放ts视频流?
- java设置类的字符格式_java类---与格式化相关的类
- win7下mysql读写分离_Windows环境下Mysql 5.7读写分离简单记录
- C/C++[算法入门]
- 慕课软件质量保证与测试(第九章.课后作业)
- [前端]使用meta控制双核浏览器默认使用webkit/chrome内核
- Mysql支持translate函数吗_oracle 中的translate函数
- rto净化效率计算公式_设备综合效率计算公式详解
- 计算机网络中常用的互联设备,计算机网络的互联技术
- vue里面动态渲染图片?
- 【ECCV2020】Spatio-Temporal Graph Transformer Networks for Pedestrian Trajectory Prediction
- linux-scp上传下载
- Jmeter怎么实现接口关联?