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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tangliping 中级黑马   /  2014-6-28 02:49  /  1067 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多态的作用是什么,有什么意义

5 个回复

正序浏览
我的理解是,通过同一标识符对不同的方法,变量,对象进行调用。提高代码利用性,有利程序扩展。以下是一个简单的示范:

  1. /**
  2. 以下是一段简单的多态演示代码。
  3. */

  4. abstract class Car
  5. {
  6.         String ID;
  7.         String colour;
  8.         Car(){}       
  9.         abstract void run();
  10. }
  11. class Truck extends Car
  12. {
  13.         Truck(String ID,String colour)
  14.         {
  15.                 this.ID = ID;
  16.                 this.colour = colour;
  17.         }
  18.         void run()                                                                                                //复写run方法,打印车牌和颜色;
  19.         {
  20.                 System.out.println("ID: "+ID+" colour: "+colour);
  21.         }
  22. }
  23. class Roadster extends Car
  24. {
  25.         int speed;
  26.         Roadster(String ID,String colour,int speed)
  27.         {
  28.                 this.ID = ID;                                                                                //局部变更隐藏了类变量,使用this关键字调出类变量;
  29.                 this.colour = colour;
  30.                 this.speed = speed;
  31.         }
  32.         Roadster(int speed,String ID,String colour)                                //参数顺序不同,覆写构造方法;
  33.         {
  34.                 this.ID = ID;
  35.                 this.colour = colour;
  36.                 this.speed = speed;
  37.         }
  38.         void run()
  39.         {
  40.                 //此处除了车牌和颜色,还加入了对时速的打印输出;
  41.                 System.out.println("ID: "+ID+" colour: "+colour+"  speed : "+speed+" kilometres per hour");
  42.         }

  43. }
  44. public class CarDemo
  45. {
  46.         public static void main(String[] args)
  47.         {
  48.                 Car c[] = new Car[3];
  49.                 //父类的引用指向子类的对象;
  50.                 c[0] = new Truck("FY-999","blue");
  51.                 c[1] = new Roadster(210,"BJ-001","white");
  52.                 c[2] = new Roadster("GY-888","red",200);                       
  53.                 for(Car car :c)
  54.                 {
  55.                         car.run();                                                                                //不同的子类对象可以用foreach循环一起调用;
  56.                 }
  57.         }
  58. }
复制代码

运行效果:







评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
多态的好处:
        提高了代码的扩展性,前期定义的代码可以使用后期的内容。

多态的弊端:
        前期定义的内容不能使用(调用)后期子类的特有内容。
回复 使用道具 举报
作用:简单的说就是一个接口,多种实现;继承的表现就是多态,但是多态的前提是两个类之间必须要有关系(继承)。
意义:1.提高程序的可复用性。
        2.提高可扩充性和可维护性。
回复 使用道具 举报
A:提高代码复用性。 B:提高程序的扩展性。
回复 使用道具 举报
实现多态的原因是:简单来讲是“模糊战略” 就是在做之前不把话说死,模糊一点想想空间大些。具体做的时候再具体话。  也可以理解为 雏形、草稿模板。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马