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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张海洋 中级黑马   /  2013-3-26 09:35  /  1879 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么条件下,才能使用多态?

8 个回复

倒序浏览
java多态存在的三个必要条件:

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

2.需要有方法的重写

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

评分

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

查看全部评分

回复 使用道具 举报
必须是类与类有关系,要么继承,要么实现!

评分

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

查看全部评分

回复 使用道具 举报
多态就是编译时类型和运行时类型不一致。
只有具有继承关系时才能使用多态,是父类引用指向子类对象,这种情况很多,面向接口编程,就是多态。例如:
Set  set = new HashSet();面向接口编程便于以后修改,如上一句代码改成 Set set = new TreeSet();也可以。
对代码的扩展很方便。

评分

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

查看全部评分

回复 使用道具 举报
毕老师讲的多态三个条件
1.有继承关系的存在
2.子类复写了父类的方法
3.有父类的引用指向子类对象

评分

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

查看全部评分

回复 使用道具 举报
多态 字面意思 就是多种形态(类型)   有继承(实现接口)  就已经满足使用多态的条件了 用代码表示的话  就是 父类引用指向子类的对象
回复 使用道具 举报
简单来说  重写和重载  就是多态的应用  .

点评

你好 重载不是多态 重载发生在同一个类中 而且是编译期的行为 多态是运行期才能判定的  发表于 2013-3-26 12:06
回复 使用道具 举报
多态是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作
回复 使用道具 举报
当一个类有很多子类时,并且这些子类都重写了父类中的某个方法,
那么当把子类创建的对象的引用放到一个父类的对象中时,就得到了该对象的一个上转型对象,
那么这个上转型对象在调用这个方法时,就可能具有多中形态,因为不同的子类在重写父类的方法时可能产生不同的行为

专业点来讲,多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为
举了例子来说。为了形象我是用了汉字来做类名。希望你能看明白
  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. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马