Java实验项目三——编程实现Person类,学生类的设计及其继承关系

Program:

编程实现Person类,学生类的设计及其继承关系

代码如下:

 

定义抽象类Person

 

  1 /*
  2  * Description:建立抽象类
  3  * 
  4  * Written By:Cai
  5  * 
  6  * Date Written:2017-10-17
  7  * 
  8  * */
  9 
 10 
 11 package resource;
 12 
 13 public abstract class Person {
 14     
 15     private String name;          //姓名
 16     private int age;              //年龄
 17     private String sex;          //性别
 18     private String address;       //地址
 19     private String telephone;     //电话
 20     
 21     //定义构造方法
 22     
 23     public Person() {}
 24 
 25     public Person(String name, int age, String sex, String address,
 26             String telephone) {
 27         
 28         this.name = name;
 29         this.age = age;
 30         this.sex = sex;
 31         this.address = address;
 32         this.telephone = telephone;
 33     }
 34 
 35     //定义setter()和getter()方法
 36     
 37     public String getName() {
 38         return name;
 39     }
 40 
 41     public void setName(String name) {
 42         this.name = name;
 43     }
 44 
 45     public int getAge() {
 46         return age;
 47     }
 48 
 49     public void setAge(int age) {
 50         this.age = age;
 51     }
 52 
 53     public String getSex() {
 54         return sex;
 55     }
 56 
 57     public void setSex(String sex) {
 58         this.sex = sex;
 59     }
 60 
 61     public String getAddress() {
 62         return address;
 63     }
 64 
 65     public void setAddress(String address) {
 66         this.address = address;
 67     }
 68 
 69     public String getTelephone() {
 70         return telephone;
 71     }
 72 
 73     public void setTelephone(String telephone) {
 74         this.telephone = telephone;
 75     }
 76 
 77     //覆写toString()方法
 78     @Override
 79     public String toString() {
 80         return "Person [name=" + name + ", age=" + age + ", sex=" + sex
 81                 + ", address=" + address + ", telephone=" + telephone + "]";
 82     }
 83     
 84     //使用模板模式,定义好简单模板,打印信息
 85     /*
 86      * 模板模式为面向对象设计模式之一,其大概思想(个人理解):
 87      * 在抽象方法中完成已经确定的内容,而不确定的部分,写成抽象方法并调用
 88      * 而抽象方法的具体实现,交给继承他的类去具体实现,
 89      * 这样开发人员只要写好自己的实现部分便可,然后在主方法中,
 90      * 通过实例化后的抽象类直接调用模板方法便可
 91      * 
 92      * 以下方法只是一个简单的表示
 93      *  
 94      * */
 95     public void display() {
 96         
 97         System.out.println( this );                //公共部分
 98         System.out.println("-------------------风骚java分割线-----------------");
 99         getInfo();                          //开发人员具体的实现
100         System.out.println("-------------------风骚java分割线-----------------");
101         System.out.println( "本输出方法采用模板设计模式,以上为学生信息!" );    //公共部分
102     
103     }
104     
105     //声明抽象方法,打印子类的添加信息
106     public abstract void getInfo();
107 
108 
109 }

 

 

定义Student类,继承抽象类

 

 1 /*
 2  * Description:定义学生类,继承Person方法
 3  * 
 4  * Written By:Cai
 5  * 
 6  * Date Written:2017-10-17
 7  * 
 8  * */
 9 
10 
11 package resource;
12 
13 public class Student extends Person {
14     
15     private String sno;            //学号
16     private String className;     //班级
17     
18     //定义构造方法
19     public Student(String name, int age, String sex, String address,
20             String telephone,String sno,String className) {
21         
22         super(name,age,sex,address,telephone);
23         this.sno = sno;
24         this.className = className;
25     }
26     
27 
28     //定义setter()和getter()方法
29     public String getSno() {
30         return sno;
31     }
32 
33     public void setSno(String sno) {
34         this.sno = sno;
35     }
36 
37     public String getClassName() {
38         return className;
39     }
40 
41     public void setClassName(String className) {
42         this.className = className;
43     }
44 
45 
46     //实现父类抽象方法
47     @Override
48     public void getInfo() {
49         
50         System.out.println( "学号:" + this.getSno() + "\t班级:" + this.getClassName() );
51     }
52     
53 }

 

posted @ 2017-10-17 22:27  空芯菜  阅读(6275)  评论(0编辑  收藏  举报