首页 > 代码库 > java 多态2
java 多态2
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