ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

继承关系举例详解

2019-09-16 16:51:12  阅读:197  来源: 互联网

标签:tel String 继承 void fa 详解 举例 Employee public


/**
* 一、实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty和Staff。具体要求如下:

(1)Person类中的属性有:姓名name(String类型),地址address(String类型),电话号码telphone(String类型)和电子邮件地址email(String类型);

(2)Employee类中的属性有:办公室office(String类型),工资wage(double类型),受雇日期hiredate(String类型);

(3)Faculty类中的属性有:学位degree(String类型),级别level(String类型);

(4)Staff类中的属性有:职务称号duty(String类型)。
*/

1、Person类
 1 public class Person {
 2     private String name;
 3     private  String address;
 4     private String telphone;
 5     public String email;
 6     static double incom(double salary,double sal){
 7         return salary+sal;
 8     }
 9     public void tel(){
10         System.out.println("大父类");
11     }
12 
13     public String getName() {
14         return name;
15     }
16 
17     public void setName(String name) {
18         this.name = name;
19     }
20 
21     public String getAddress() {
22         return address;
23     }
24 
25     public void setAddress(String address) {
26         this.address = address;
27     }
28 
29     public String getTelphone() {
30         return telphone;
31     }
32 
33     public void setTelphone(String telphone) {
34         this.telphone = telphone;
35     }
36 }

2、Employee类

 1 public class Employee extends Person {
 2     private String office;
 3     private double wage;
 4     public String hiredate;
 5 
 6     static double incom(double salary, double sal){
 7         return sal*salary;
 8     }
 9 
10     @Override
11     public void tel() {
12         System.out.println("小父类");
13     }
14 
15     public String getOffice() {
16         return office;
17     }
18 
19     public void setOffice(String office) {
20         this.office = office;
21     }
22 
23     public double getWage() {
24         return wage;
25     }
26 
27     public void setWage(double wage) {
28         this.wage = wage;
29     }
30 }

3、Faculty类

 1 public class Faculty extends Employee {
 2     private String degree;
 3     public String level;
 4 
 5     @Override
 6     public void tel() {
 7         System.out.println("子类1");
 8     }
 9 
10     public String getDegree() {
11         return degree;
12     }
13 
14     public void setDegree(String degree) {
15         this.degree = degree;
16     }
17 }

4、Staff类

 1 public class Staff extends Employee {
 2     private String duty;
 3     @Override
 4     public void tel(){
 5         System.out.println("子类2");
 6     }
 7 
 8     public String getDuty() {
 9         return duty;
10     }
11 
12     public void setDuty(String duty) {
13         this.duty = duty;
14     }
15 
16 }

5、测试类

 1 public class test4 {
 2     public static void main(String[]args){
 3         Employee fa=new Employee();
 4         Person da=new Employee();   //父类的引用可以指向子类的对象
 5         Person sa =new Person();
 6         Employee wa=new Faculty();
 7         //对象属性的引用只能指向该引用类和该类的父类属性
 8         fa.email="父类属性值";
 9         fa.hiredate="子类属性值";
10         da.email="3333";
11         //da.hiredate="3333";  无法引用子类的属性值
12 
13 
14         fa.tel();    //Employee的tel方法
15         da.tel();    //Employee的tel方法
16         sa.tel();   //Person的tel方法
17         wa.tel();  //Faculty的tel方法
18 
19         //如果想引用private属性,需要通过封装get来获取
20         fa.setName("李刚");
21         fa.setAddress("凯华");
22         fa.setTelphone("13225452652");
23         fa.hiredate="20190830";   //该属性是public修饰
24         fa.setOffice("经理室");
25         fa.setWage(88888);
26 
27         double A= fa.incom(5,10);  //Employee类的方法
28         double B= da.incom(10,10); //Person类的方法
29 
30         System.out.println(A);
31         System.out.println(B);
32         System.out.println(fa.getName()+fa.getTelphone());
33 
34 
35     }
36 }

执行结果:

 

 

 

标签:tel,String,继承,void,fa,详解,举例,Employee,public
来源: https://www.cnblogs.com/datacenter/p/11528206.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有