抽象類貓狗案例
阿新 • • 發佈:2019-01-09
java 抽象類貓狗案例
/* 貓狗案例 具體事物:貓,狗 共性:姓名,年齡,吃飯 分析:從具體到抽象 貓: 成員變數:姓名,年齡 構造方法:無參,帶參 成員方法:吃飯(貓吃魚) 狗: 成員變數:姓名,年齡 構造方法:無參,帶參 成員方法:吃飯(狗吃肉) 因為有共性的內容,所以就提取了一個父類。動物。 但是又由於吃飯的內容不一樣,所以吃飯的方法是抽象的, 而方法是抽象的類,類就必須定義為抽象類。 抽象動物類: 成員變數:姓名,年齡 構造方法:無參,帶參 成員方法:吃飯(); 實現:從抽象到具體 動物類: 成員變數:姓名,年齡 構造方法:無參,帶參 成員方法:吃飯(); 狗類: 繼承自動物類 重寫吃飯(); 貓類: 繼承自動物類 重寫吃飯(); */ //定義抽象的動物類 abstract class Animal { //姓名 private String name; //年齡 private int age; public Animal() {} public Animal(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 eat(); } //定義具體的狗類 class Dog extends Animal { public Dog() {} public Dog(String name,int age) { super(name,age); } public void eat() { System.out.println("狗吃肉"); } } //定義具體的貓類 class Cat extends Animal { public Cat() {} public Cat(String name,int age) { super(name,age); } public void eat() { System.out.println("貓吃魚"); } } //測試類 class AbstractTest { public static void main(String[] args) { //測試狗類 //具體類用法 //方式1: Dog d = new Dog(); d.setName("旺財"); d.setAge(3); System.out.println(d.getName()+"---"+d.getAge()); d.eat(); //方式2: Dog d2 = new Dog("旺財",3); System.out.println(d2.getName()+"---"+d2.getAge()); d2.eat(); System.out.println("---------------------------"); Animal a = new Dog(); a.setName("旺財"); a.setAge(3); System.out.println(a.getName()+"---"+a.getAge()); a.eat(); Animal a2 = new Dog("旺財",3); System.out.println(a2.getName()+"---"+a2.getAge()); a2.eat(); //練習:測試貓類 } }