继承的基本演示
来源:互联网 发布:d3.js的作用 编辑:程序博客网 时间:2024/05/05 15:10
package org.pcl.shili.jicheng;import java.util.Calendar;import java.util.GregorianCalendar;/** * 继承的基本演示 * @author yifan * @version 1.1 2014-05-14 * * 1.演示了一个类如何继承另一个类: 使用extends关键字 * 2.演示了super关键字的两个用法, 一个是调用构造器另一个调用父类方法 * 3.演示了子类中使用父类的私有成员的方式:使用父类共有的方法 * 4.对于成员是类类型,并且该类型具有修改其自身的方法时的使用方式见getHireDate方法 * 5.演示了多态和动态绑定 */public class ManagerTest {public static void main(String[] args) {Employee[] employees = new Employee[3];employees[0] = new Manager("管理员", 8000, 2000, 12, 13, 10000); // 多态哦employees[1] = new Employee("员工1", 6000, 2008, 8, 8);employees[2] = new Employee("员工2", 3000, 2014, 5, 15);// 循环输出所有的职员信息for(Employee e : employees) {String name = e.getName();double salary = e.getSalary(); // 动态绑定GregorianCalendar hireDate = e.getHireDate();System.out.printf("员工姓名:%s, 员工工资:%.2f, 员工入职时间:%d年%d月%d日\n", name, salary, hireDate.get(Calendar.YEAR), hireDate.get(Calendar.MONTH)+1, hireDate.get(Calendar.DAY_OF_MONTH));}}}/** * 普通职员类 * @author yifan * @version 1.1 2014-05-14 */class Employee {/** * 构建一个新的职员 * @param name 姓名 * @param salary 工资 * @param year 入职年 * @param month 入职月 * @param day 入职日 */public Employee(String sName, double dSalary, int iYear, int iMonth, int iDay) {this.name = sName;this.salary = dSalary;this.hireDate = new GregorianCalendar(iYear, iMonth-1, iDay);}/** * 获取职员姓名 * @return 职员的姓名 */public String getName() {return this.name;}/** * 获取职员的工资 * @return 职员的工资 */public double getSalary() {return this.salary;}/** * 获取入职时间的一个副本 * @return 入职的时间 */public GregorianCalendar getHireDate() {return (GregorianCalendar) this.hireDate.clone();}/** * 给职员增加工资 * @param byPercent 增加的系数 */public void raiseSalary(int byPercent) {this.salary += this.salary * byPercent/100;}private String name;private double salary;private GregorianCalendar hireDate;}/** * 管理员类,继承自普通员工类 * @author yifan * @version 1.0 2014-05-14 */class Manager extends Employee {/** * 构建一个新的管理员 * @param name 管理员的姓名 * @param salary 管理员的工资 * @param year 入职年 * @param month 入职月 * @param day 入职日 */public Manager(String name, double salary, int year, int month, int day) {super(name, salary, year, month, day);this.bonus = 0;}/** * 构建一个新的管理员并设置管理员的奖金 * @param name 姓名 * @param salary 工资 * @param year 入职年 * @param month 入职月 * @param day 入职日 * @param dBanus 奖金 */public Manager(String name, double salary, int year, int month, int day, double dBaous) {super(name, salary, year, month, day);this.bonus = dBaous;}/** * 设置该管理员的奖金 * @param dBonus 奖金 */public void setBanus(double dBonus) {this.bonus = dBonus;}/** * 获取管理员的工资 * @return 管理员的工资 */@Overridepublic double getSalary() {return super.getSalary() + this.bonus;}private double bonus;}
0 0
- 继承的基本演示
- 变量的基本演示
- lua基本类型的演示
- 演示继承的构造函数执行顺序
- Open Inventor练习-SoWinExaminerViewer的继承演示
- 演示 pull解析的基本步骤(代码演示)
- 继承的基本实现
- 继承的基本用法
- 继承的基本使用
- 简单演示BLOCK的基本使用方法
- java继承的基本语法
- java 继承的基本实现
- java 继承的基本实现
- java 继承的基本实现
- C#--继承的基本使用
- android dialog 基本演示
- 内存共享基本演示
- basic DirectDraw initialization demo 基本的directdraw初始化演示
- LeetCode--Linked List Cycle
- 第十一讲 页面布局及母版页
- ios推送常用方法
- Node.js 入门简介
- TI C66x DSP 系统events及其应用 - 5.3(Interrupt)
- 继承的基本演示
- 局域网聊天中如何实现 CStdioFile 按行读取写入
- 第十二讲 N层架构在ASP.NET中的应用(一)
- C3P0数据库连接池源代码
- Sizeof与Strlen的区别与联系
- Linux下命令free
- Android 设计模式
- 不用for和while从任意字符串中找出第一个仅出现一次的字符
- 缓存数据到内存;减轻服务器的压力