A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© longyun 中级黑马   /  2016-5-31 21:29  /  436 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多态怎么应用啊?哪位大神给举个例子啊?

1 个回复

倒序浏览
多态,最常用的场合就是当做参数进行传递,可以提高代码的扩展性,给你举个例子
假设,有一个方法的形参是一个类类型变量,在方法体中,使用这个传入的对象引用调用方法eat()
  1. class DemoMul  {
  2.         public static void main(String[] args)  {
  3.                 //如果不使用多态,调用Dog和Cat类的方法就必须写如下好多eatMathod(),重载
  4.                 eatMethod(new Dog());
  5.                 eatMethod(new Cat());
  6.                 //...
  7.                 //如果有n个,不是要写n个eatMathod()
  8.                 /*使用多态,则只有写一个eatMathod()即可*/
  9.                 eatMethod(new Dog());
  10.                 eatMethod(new Cat());
  11.         }
  12.         public static void eatMethod(Dog d){
  13.                 d.eat();
  14.         }
  15.         public static void eatMethod(Cat c){
  16.                 c.eat();
  17.         }
  18.         //...
  19.         /*使用多态,则只有写一个eatMathod()即可*/
  20.         public static void eatMethod(Animal a){
  21.                 a.eat();
  22.         }
  23. }
  24. abstract class Animal {
  25.         public abstract void eat();
  26. }

  27. class Cat extends Animal {
  28.         //重写父类抽象方法
  29.         public void eat(){
  30.                 System.out.println("猫吃鱼");
  31.         }
  32. }

  33. class  Dog extends Animal {
  34.         public void eat(){
  35.                 System.out.println("狗吃骨头");
  36.         }
  37. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马