面向物件_抽象類練習老師案例
阿新 • • 發佈:2019-01-03
/* 老師案例 具體事物:基礎班老師、就業班老師 共性:姓名、年齡、講課 分析:從具體到抽象 基礎班老師: 成員變數:姓名、年齡 構造方法:無參、帶參 成員方法:teach();(JavaEE) 就業班老師: 成員變數:姓名、年齡 構造方法:無參、帶參 成員方法:teach();(JavaSE) 老師: 成員變數:姓名、年齡 構造方法:無參、帶參 成員方法:teach(); 實現:從抽象到具體 老師: 成員變數:姓名、年齡 構造方法:無參、帶參 成員方法:getXxx()/setXxx();teach(); 基礎班老師: 繼承自老師類 重寫講課方法 就業班老師: 繼承自老師類 重寫講課方法 */ //定義抽象老師類 abstract class Teacher{ //姓名 private String name; //年齡 private int age; public Teacher(){} public Teacher(String name,int age){ this.name = name; this.age = age; } public String getName(){ return name; } public void setName(String name){ this.name = name; } public int getAge(){ return age; } public void setAge(int age){ this.age = age; } //抽象方法 public abstract void teach(); } //定義基礎班老師具體類 class BasicTeacher extends Teacher{ public BasicTeacher(){} public BasicTeacher(String name,int age){ super(name,age); } public void teach(){ System.out.println("基礎班老師講解JavaSE"); } } //定義就業班老師具體類 class WorkTeacher extends Teacher{ public WorkTeacher(){} public WorkTeacher(String name,int age){ super(name,age); } public void teach(){ System.out.println("就業班老師講解JavaEE"); } } class AbstractTest2{ public static void main(String[] args){ //具體類測試 //基礎班老師 //方式1 BasicTeacher b = new BasicTeacher(); b.setName("小剛"); b.setAge(33); System.out.println(b.getName()+"---"+b.getAge()); b.teach(); System.out.println("-------------------------"); //方式2 BasicTeacher b2 = new BasicTeacher("小明",45); System.out.println(b2.getName()+"---"+b2.getAge()); b2.teach(); System.out.println("-------------------------"); //就業班老師 //方式1 WorkTeacher wt = new WorkTeacher(); wt.setName("小剛"); wt.setAge(33); System.out.println(wt.getName()+"---"+wt.getAge()); wt.teach(); System.out.println("-------------------------"); //方式2 WorkTeacher wt2 = new WorkTeacher("小明",45); System.out.println(wt2.getName()+"---"+wt2.getAge()); wt2.teach(); System.out.println("-------------------------"); //測試(多型) //基礎班老師 //方式1 Teacher t = new BasicTeacher(); t.setName("小剛"); t.setAge(33); System.out.println(t.getName()+"---"+t.getAge()); t.teach(); System.out.println("-----------------------------"); //方式2 t = new BasicTeacher("小明",45); System.out.println(t.getName()+"---"+t.getAge()); t.teach(); System.out.println("-----------------------------"); //就業班老師 //方式1 t = new WorkTeacher(); t.setName("小剛"); t.setAge(33); System.out.println(t.getName()+"---"+t.getAge()); t.teach(); System.out.println("-----------------------------"); //方式2 t = new WorkTeacher("小明",45); System.out.println(t.getName()+"---"+t.getAge()); t.teach(); } }