定义抽象类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(按年相关推荐

  1. Java继承和多态--笔记本USB接口案例

    首先我们创建一个接口要求有打开和关闭两种方法. public interface USB {void open();// 打开设备void close();// 关闭设备 } 再创建一个笔记本类包括开 ...

  2. java继承和多态的实验报告_Java继承与多态实验报告.doc

    Java继承与多态实验报告 西 安 邮 电 大 学 (计算机学院) 课内实验报告 实验名称: 继承与多态 专业名称: 计算机科学与技术 班 级: 计科1405班 学生姓名: 高宏伟 学 号: 指导教师 ...

  3. 头歌实践-Java继承与多态

    头歌实践作业 第1关:练习-Java继承和多态之final关键字 第2关:学习-Java继承和多态之对象类型的转换 任务描述 相关知识 向上转型 向下转型 编程要求 第3关:练习-Java继承和多态之 ...

  4. 学习-Java继承和多态之子类继承性

    第1关:学习-Java继承和多态之子类继承性 任务描述 相关知识 编程要求 测试说明 任务描述 本关任务:定义一个 Dog 类,继承 Animal 类(Animal 类已经定义),定义自己的性别属性, ...

  5. 学习-Java继承和多态之方法重载

    第1关:学习-Java继承和多态之方法重载 任务描述 相关知识 编程要求 测试说明 任务描述 本关任务:使用重载方法为 Student 类创建三个构造方法. 相关知识 Java 中重载是指一个类中可以 ...

  6. 学习-Java继承和多态之子类对象特点

    第1关:学习-Java继承和多态之子类对象特点 任务描述 相关知识 子类对象的特点 instanceof 运算符 编程要求 测试说明 任务描述 本关任务:使用 instanceof 运算符判断所指对象 ...

  7. 学习-Java继承和多态之final关键字

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 题目:学习-Java继承和多态之final关键字. 任务:调试代码,对代码进行增添.删除和修改等操作,使得程序能够正常运行,输出结果请 ...

  8. visual C#(十三)创建接口和定义抽象类

    参考书:< visual C# 从入门到精通> 第二部分 理解C#对象模型 第13章 创建接口和定义抽象类 文章目录 13.1 理解接口 13.1.11 定义接口 13.1.2 实现接口 ...

  9. java面向对象编程_包_继承_多态_重载和重写_抽象类_接口_this和super

    目录点击跳转 包 包的命名方法 导入包中的类 系统包的介绍 **注意事项** 继承 基础知识 构造方法 **基础语法** `protected`修饰符 组合 `this`和`super`关键字 `th ...

  10. java口径_关于JAVA继承、多态、抽象类、接口等性质的学习(3)

    抽象类:abstract class 接   口:interface 在java的类中,只要有一个方法为抽象方法,那么该类就是抽象类.换句话说,抽象类可以提供部分方法的具体实现,这一点在接口中是不被允 ...

最新文章

  1. Ajax方式上传文件报错Uncaught TypeError: Illegal invocation
  2. linux c 打印错误信息error errno perror和strerror的区别
  3. Python调用C/C++的种种方法
  4. 自己的模块给其他人调用是怎么打包的_webpack实战——模块打包
  5. [CODEVS 1285] 宠物收养所
  6. 重庆大学光电工程学院 贾旭滨 对 “句柄” “指针” 有下面的描述(AfxGetMainWnd GetSafeHwnd() AfxGetAppName() AfxGetThread)...
  7. boost::mpi::cartesian_topology相关用法的测试程序
  8. [html] HTML5如何播放ts视频流?
  9. java设置类的字符格式_java类---与格式化相关的类
  10. win7下mysql读写分离_Windows环境下Mysql 5.7读写分离简单记录
  11. C/C++[算法入门]
  12. 慕课软件质量保证与测试(第九章.课后作业)
  13. [前端]使用meta控制双核浏览器默认使用webkit/chrome内核
  14. Mysql支持translate函数吗_oracle 中的translate函数
  15. rto净化效率计算公式_设备综合效率计算公式详解
  16. 计算机网络中常用的互联设备,计算机网络的互联技术
  17. vue里面动态渲染图片?
  18. 【ECCV2020】Spatio-Temporal Graph Transformer Networks for Pedestrian Trajectory Prediction
  19. linux-scp上传下载
  20. Jmeter怎么实现接口关联?

热门文章

  1. 【第五人格设计思路】守墓人·角色设计思路
  2. 【笔记】Oracle的除法并保留两位小数点
  3. P2P流媒体直播点播(带宽节约95%以上)技术分享
  4. 需求定律公式和需求弹性推导——《可以量化的经济学》
  5. 牛刀小用: 朱砂掌治内痔
  6. nginx动态黑名单功能
  7. 子网掩码的作用是什么 两大作用详解
  8. 【UV打印机】波形开发-喷头工作原理(一)
  9. A*寻路算法讲解+源码DEMO演示
  10. SaaS-HRM(3)企业部门管理前后台