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 }