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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hg3093483 中级黑马   /  2013-3-21 14:54  /  1325 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

小弟看到毕老师的视频,想问一下多态的扩展性是在什么情况下能用得到呢?

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-21 19:16

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

2 个回复

正序浏览
重写父类方法后,可以实现功能极大扩展,你可以试着调试一下下面的代码
  1. public class ExtendsTest  {
  2.         public static void main(String[] args) {
  3.                 Person p1 = new Chinese();
  4.                 Person p2 = new Japanese();
  5.                 Person p3 = new American();
  6.                 Person[] plist = new Person[]{p1,p2,p3};
  7.                 for(int i=0;i<3;i++){
  8.                         plist[i].sayHello();
  9.                 }

  10.         }

  11. }

  12. abstract class Person{
  13.         abstract void sayHello();
  14. }

  15. class Chinese extends Person{

  16.         @Override
  17.         void sayHello() {
  18.                 System.out.println("Hello,I am Chinese");
  19.         }
  20.        
  21. }
  22. class Japanese extends Person{

  23.         @Override
  24.         void sayHello() {
  25.                 System.out.println("Hello,I am Japanese");
  26.         }
  27.        
  28. }
  29. class American extends Person{

  30.         @Override
  31.         void sayHello() {
  32.                 System.out.println("Hello,I am American");
  33.         }
  34.        
  35. }
复制代码
运行结果是:
Hello,I am Chinese
Hello,I am Japanese
Hello,I am American
重写父类方法后,可以实现功能极大扩展,由此可见一斑

点评

建议你最好把代码加上注释,这样你以后会看着方便些,对别人也是一种清晰的阐述,谢谢  发表于 2013-3-21 19:16

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
多态有编译时多态 和运行时多态。第一个是通过方法重载实现;第二个是通过方法覆盖实现(子类覆盖父类方法)。第一种就是我们调用方法是不用区分参数类型,程序会自动执行相应方法,如: 加法运算,可以使int相加,可以是double相加,都是同一个方法名。第二种就是动态绑定,使用父类引用指向子类对象,再调用某一父类中的方法时,不同子类会表现出不同结果。 这样的作用就是扩展性极好,玩过网游的话应该知道 游戏中有不同的角色,它们都有一个父类,它们做相同动作时表现出来的效果就会不一样,比如跑,魔法师的跑跟战士的跑就不会一样,这就是俩者都覆盖了父类中的跑方法,各自有自己的现实,表现出来多态。  如果有一天你想再加个角色,只用再写一个类继承该父类,覆盖其中的跑方法就行了,其他代码不用怎么改,所以可维护性也很好。

点评

谢谢明白了不少  发表于 2013-3-21 15:13

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马