本帖最后由 1961993790 于 2013-10-25 15:36 编辑
abstract class Animal
{
abstract void eat();
}
class Dog extends Animal
{
void eat()
{
System.out.println("啃骨头");
}
void lookHome()
{
System.out.println("看家");
}
}
class Cat extends Animal
{
void eat()
{
System.out.println("吃鱼");
}
void catchMouse()
{
System.out.println("抓老鼠");
}
}
class Pig extends Animal
{
void eat()
{
System.out.println("饲料");
}
void gongDi()
{
System.out.println("拱地");
}
}
class DuoTaiDemo
{
public static void main(String[] args)
{
method(new Dog());
}
public static void method(Animal a){
a.eat();
if(a instanceof Cat)//instanceof:用于判断对象的具体类型。
{
Cat c = (Cat)a;
c.catchMouse();
}
else if(a instanceof Dog)
{
Dog d = (Dog)a;
d.lookHome();
}
else
{
}
}
instanceof:用于判断对象的具体类型。那么如果有很多Animal的子类需要有很多的if(a instanceof 子类对象)判断语句,用来判断该子类属于哪个对象,这样的话
多态就很难解决了?怎样更好的实现呢?
|