黑马程序员技术交流社区

标题: 多态 [打印本页]

作者: 张海洋    时间: 2013-3-26 09:35
标题: 多态
什么条件下,才能使用多态?
作者: HM周一帆    时间: 2013-3-26 09:38
java多态存在的三个必要条件:

1.需要有继承关系的存在

2.需要有方法的重写

3.需要有父类的引用指向子类对象


作者: 王永彬    时间: 2013-3-26 09:51
必须是类与类有关系,要么继承,要么实现!
作者: 123    时间: 2013-3-26 09:53
多态就是编译时类型和运行时类型不一致。
只有具有继承关系时才能使用多态,是父类引用指向子类对象,这种情况很多,面向接口编程,就是多态。例如:
Set  set = new HashSet();面向接口编程便于以后修改,如上一句代码改成 Set set = new TreeSet();也可以。
对代码的扩展很方便。
作者: 我手心里的宝    时间: 2013-3-26 10:12
毕老师讲的多态三个条件
1.有继承关系的存在
2.子类复写了父类的方法
3.有父类的引用指向子类对象
作者: 仉钰    时间: 2013-3-26 10:20
多态 字面意思 就是多种形态(类型)   有继承(实现接口)  就已经满足使用多态的条件了 用代码表示的话  就是 父类引用指向子类的对象
作者: 程宁宁    时间: 2013-3-26 10:28
简单来说  重写和重载  就是多态的应用  .
作者: 高顺德    时间: 2013-3-26 10:34
多态是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作
作者: 张雪萍    时间: 2013-3-26 10:51
当一个类有很多子类时,并且这些子类都重写了父类中的某个方法,
那么当把子类创建的对象的引用放到一个父类的对象中时,就得到了该对象的一个上转型对象,
那么这个上转型对象在调用这个方法时,就可能具有多中形态,因为不同的子类在重写父类的方法时可能产生不同的行为

专业点来讲,多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为
举了例子来说。为了形象我是用了汉字来做类名。希望你能看明白
  1. class 动物
  2. {
  3.         void cry()
  4.         {
  5.         }
  6. }
  7. class 狗 extends 动物
  8. {
  9.         void cry()
  10.         {
  11.                 System.out.println("狗的叫声:汪汪。。");
  12.         }
  13. }
  14. class 猫 extends 动物
  15. {
  16.         void cry()
  17.         {
  18.                 System.out.println("猫的叫声:喵喵。。");
  19.         }
  20. }
  21. class 多态
  22. {
  23.         public static void main(String[] args)
  24.         {
  25.                 动物 animal=new 狗();//animal是狗的上转型
  26.                 animal.cry();
  27.                 动物 animal=new 猫();//animal是猫的上转型
  28.                 animal.cry();
  29.         }
  30. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2