Java的继承与多态
来源:互联网 发布:windows凭据总丢失 编辑:程序博客网 时间:2024/05/21 20:29
Java的继承与多态对于提高开发效率,减少开发量,是非常有帮助的,也便于代码维护。下面是根据书上讲的,我又做了改进的例子。
假设需求:
公司需要对所有人员进行管理,所有人员分为普通员工和经理人,他们的头衔、工资、生日等信息都是不一样的,但是不能开发两套系统分别进行管理,而是要一套系统完成对所有人的管理。
设计一个员工类,这是父类,定义如下:
package com.myHelloWorld;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class Employee {private String name;private double salary;private Date birthday;public String getName() {return name;}public void setName(String name) {this.name = name;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public void setBirthday(String birthday) {SimpleDateFormat simleDateFormat = new SimpleDateFormat("yyyy-MM-dd");try {this.birthday = simleDateFormat.parse(birthday);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
package com.myHelloWorld;public class Manager extends Employee{private double bonus;@Overridepublic String getName() {// TODO Auto-generated method stubreturn super.getName() + "经理";}public double getBonus() {return bonus;}public void setBonus(double bonus) {this.bonus = bonus;}}
package com.myHelloWorld;import java.util.Date;public class EmployeeTest {public static void main(String[] args) {// TODO Auto-generated method stubEmployee empolyee = new Employee();empolyee.setName("Java");empolyee.setSalary(1000);empolyee.setBirthday(new Date());Manager manager = new Manager();manager.setName("编程高手");manager.setSalary(3000);manager.setBirthday(new Date());manager.setBonus(2000);System.out.println("员工的姓名:" + empolyee.getName());System.out.println("员工的工资:" + empolyee.getSalary());System.out.println("员工的生日:" + empolyee.getBirthday());System.out.println("经理的姓名:" + manager.getName());System.out.println("经理的工资:" + manager.getSalary());System.out.println("经理的生日:" + manager.getBirthday());System.out.println("经理的奖金:" + manager.getBonus());empolyee.setBirthday("1980-10-12");manager.setBirthday("1970-01-23");System.out.println("更新员工的生日为:" + empolyee.getBirthday());System.out.println("更新经理的生日为:" + manager.getBirthday());}}
分别对员工类和经理类进行实例化,也就是创建这么两个人,即可对他们的姓名、头衔、工资、生日等进行管理。
这是输出截图:
这就是继承,也包含了重写。
大家可能注意到了,在设置人员生日的时候,我们的第一套方法强制要求输入Date类型的数据才能识别,这在许多场合并不方便,而且需要做很多额外的处理工作,那么我们再创建一个这个方法的重载,允许以『yyyy-MM-dd』的格式输入生日,这样就方便多了,也直观多了。
这就是多态。
0 0
- Java的继承与多态
- java的继承与多态
- Java的继承与多态
- java里的继承与多态
- Java的继承与多态
- java的继承与多态
- 【6.23】java的继承与多态
- JAVA 的多态、继承与封装
- java 继承与多态
- Java 继承与多态
- java 继承与多态
- Java继承与多态
- java继承与多态
- java继承与多态
- Java继承与多态
- java继承与多态
- Java继承与多态
- java继承与多态
- js设置前台内容字数大小
- JavaScript--事件入门(24)
- 黑马程序员-iOS视频学习之四
- 递归删除子节点
- springMVC文件上传
- Java的继承与多态
- Android源代码的下载
- c语言编程练习(一)
- 判断父节点是否存在
- 杭电 HDU ACM 1323 Perfection
- 黑马程序员------7k月薪面试题-银行业务调度系统
- 进入PE系统后找不到硬盘该怎么办?
- java高新之类加载器
- Drazil and Factoria