標籤:繼承 name bsp abstract sys 重寫 pack static 實現
http://www.cnblogs.com/wqq0402/p/6180685.html
package test05;
public class DuoTai_Test02 {
/**多個對象,一個形態
* Tiger、Lion、Snake → Animal
*、多個對象,一種形態(類型)。
* 不同對象,表現出同一種形態之後。
* 可以實現同樣的功能。
*
* 此方式,需要多個子類對應一個父類。
* 往往是採用(多個)子類繼承父類來實現。
*
* @param args
*/
public static void main(String[] args) {
Animal animal = new Cat();//抽象引用指向子類對象
animal.eat();
animal.sheep();
Animal animal2 = new Dog();
animal2.eat();
animal2.sheep();
Animal animal3 = new Snack();
animal3.eat();
animal3.sheep();
DuoTai_Test02 dt = new DuoTai_Test02();
dt.test(new Cat());
dt.test(new Dog());
dt.test(new Snack());
}
public void test(Animal animals){
animals.eat();
animals.sheep();
}
}
abstract class Animal {//抽象類別
String name;
int age;
public abstract void eat();//抽象方法
public abstract void sheep();//抽象方法
}
class Cat extends Animal {
public void eat() {//方法重寫
System.out.println("貓吃");
}
public void sheep(){
System.out.println("貓睡覺");
}
}
class Dog extends Animal {
public void eat(){//方法重寫
System.out.println("狗吃");
}
public void sheep() {
System.out.println("狗睡覺");
}
}
class Snack extends Animal {
public void eat() {//方法重寫
System.out.println("蛇吃");
}
public void sheep() { //方法重寫
System.out.println("蛇睡覺");
}
}
java 多態2