黑马程序员技术交流社区
标题:
多态
[打印本页]
作者:
longyun
时间:
2016-5-31 21:29
标题:
多态
多态怎么应用啊?哪位大神给举个例子啊?
作者:
元笙
时间:
2016-5-31 22:59
多态,最常用的场合就是当做参数进行传递,可以提高代码的扩展性,给你举个例子
假设,有一个方法的形参是一个类类型变量,在方法体中,使用这个传入的对象引用调用方法eat()
class DemoMul {
public static void main(String[] args) {
//如果不使用多态,调用Dog和Cat类的方法就必须写如下好多eatMathod(),重载
eatMethod(new Dog());
eatMethod(new Cat());
//...
//如果有n个,不是要写n个eatMathod()
/*使用多态,则只有写一个eatMathod()即可*/
eatMethod(new Dog());
eatMethod(new Cat());
}
public static void eatMethod(Dog d){
d.eat();
}
public static void eatMethod(Cat c){
c.eat();
}
//...
/*使用多态,则只有写一个eatMathod()即可*/
public static void eatMethod(Animal a){
a.eat();
}
}
abstract class Animal {
public abstract void eat();
}
class Cat extends Animal {
//重写父类抽象方法
public void eat(){
System.out.println("猫吃鱼");
}
}
class Dog extends Animal {
public void eat(){
System.out.println("狗吃骨头");
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2