Java學習的第十一天---多型
abstract class Animal{
abstract void eat();
}
class Cat extends Animal{
public void eat(){
System.out.println("吃魚");
}
public void catchMouse(){
System.out.println("抓老鼠");
}
}
class Dog extends Animal{
public void eat(){
System.out.println("吃骨頭");
}
public void kanJia(){
System.out.println("看家");
}
}
class Pig extends Animal{
public void eat(){
System.out.println("飼料");
}
public void gongDi(){
System.out.println("拱地");
}
}
//-----------------------------------------
class DuoTaiDemo {
public static void main(String[] args) {
//Cat c = new Cat();
//c.eat();
//Dog d = new Dog();
//d.eat();
//Cat c = new Cat();
/*
Cat c1 = new Cat();
function(c1);
function(new Dog());
function(new Pig());
*/
//Animal c = new Cat();
//c.eat();
function(new Cat());
function(new Dog());
function(new Pig());
}
//改良後的程式碼,多型使用
public static void function(Animal a)//Animal a = new Cat();
//提高了擴充套件性,但是隻能使用父類的引用訪問父類中的成員;
{
a.eat();
//a.catchMouse();---
}
/*
最開始的方法,麻煩
public static void function(Cat c)//{
c.eat();
}
public static void function(Dog d){
d.eat();
}
public static void function(Pig p){
p.eat();
}
*/
}