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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 十甫寸 中级黑马   /  2013-7-29 21:55  /  2676 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么是多态,怎么用啊?
implement是什么指令啊?

评分

参与人数 1黑马币 +2 收起 理由
神之梦 + 2 接着看视频吧,后面会讲到

查看全部评分

11 个回复

倒序浏览
java引用变量有两种类型,一个是编译时候的类型,一个是运行时候的类型,类似我上次问的问题    ArrayList 是List的子类 , List list = new ArrayList();  list 编译时候的类型是List 而运行时候的类型是  ArrayList。 这就是多态了。list只能用父类里面有的方法。也就是List里面有的方法而不能用  ArrayList里面有而List里没有的方法。
implements  应该是实现接口,接口之后方法 ,而没有实现  如果implements的这个类实现了一个接口就要实现里面所有的抽象方法。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
{:soso_e136:}照着视频走!
回复 使用道具 举报
多态:可以理解为事物存在的多种体现形态。例如。人:可以分为 男人,女人        再如:来了一个猫,你说他是猫,可以,说他是动物,也没有错
猫 x = new 猫();        或者        动物 x = new 猫();  换句话说就是父类的引用指向了自己的子类对象。或者说父类的引用也可以接收自己的子类对象。
代码体现:Animal a = new Cat();    多态的前提:必须是类与类之间有关系。要么继承(extends),要么实现(implements)。
通常还有一个前提:存在覆盖。如果不存在覆盖,那么多态就没有意义了,

至于第二个问题,应该是implements 是实现接口   
类与类之间是继承关系,(extends)
类与接口之间是实现关系(implements)
接口与接口之间是继承关系(extends) 并且存在多继承,(Java中存在多继承,但是只有在接口与接口之间)

希望能对你有帮助

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
      多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。多态有两种表现形式:重载和覆盖
      重载,是发生在同一类中。与什么父类子类、继承毫无关系。标识一个函数除了函数名外,还有函数的参数(个数和类型)。也就是说,一个类中可以有两个或更多的函数,叫同一个名字而他们的参数不同。他们之间毫无关系,是不同的函数,只是可能他们的功能类似,所以才命名一样,增加可读性,仅此而已!  
     覆盖,是发生在子类中!也就是说必须有继承的情况下才有覆盖发生。我们知道继承一个类,也就有了父类了全部方法,如果你感到哪个方法不爽,功能要变,那就把那个函数在子类中重新实现一遍。这样再调用这个方法的时候,就是执行子类中的过程了。父类中的函数就被覆盖了。(当然,覆盖的时候函数名和参数要和父类中完全一样,不然你的方法对父类中的方法就不起任何作用,因为两者是两个函数,毫不关系)
implement请参考这里的第三个回答。http://zhidao.baidu.com/question/135705472.html

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
什么是多态?
答:多态是具有多种形态的能力的特征!也就是说:同一个实现接口,使用不同的实例而执行不同的操作,产生不同的效果,多态是一种能力,谁又能力就实现它,没能力就不要去实现它,例如:打印机,可以分为彩色打印机,和黑白打印机两种,~~例二:鸟会飞,我们把鸟定义为一个借口,谁又能力实现这个借口就去实现(implements)它,喜鹊是鸟会飞,那么喜鹊就可以去实现(implements)这个鸟这个接口,鸵鸟不会飞,它就不用去实现鸟这个借口,
implements是实现的意思,
接口!public interface birds();
那么喜鹊会飞它想要实现鸟birds这个接口就要这么写:!
public class birdsimpl implements birds{
      @Override
        public void fly() {
                System.out.println("我会飞");
        }
}
然后测试一下就可以了,都是手打,没测试,所以大体意思是这个,重要的是理解整个流程,
子类继承父类,用extends关键字,类想要实现借口,用implements关键字

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
由于子类重写父类方法,然后用父类引用指向子类对象,调用方法时候会进行动态绑定,这就是多态。
  1. package com.itheima;
  2. //父类
  3. class Fu {
  4.         void method1() {
  5.                 System.out.println("fu method1");
  6.         }

  7.         void method2() {
  8.                 System.out.println("fu method2");
  9.         }
  10. }
  11. //子类
  12. class Zi extends Fu {
  13.         void method1() {
  14.                 System.out.println("zi method1");
  15.         }
  16.         void method3() {
  17.                 System.out.println("zi method3");
  18.         }
  19. }

  20. public class DuotaiDemo4 {
  21.         public static void main(String[] args) {
  22.                 Fu f = new Zi();
  23.                 f.method1();    //非静态成员函数参看对象类中的调用方法,method1被子类覆盖。
  24.                 f.method2();
  25.         }
  26. }
复制代码
多态的前提是:必须是类与类之间的关系,继承或实现,上面代码是继承。另外还有,通常还存在覆盖,子类覆盖父类的方法。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
implement是实现接口的关键字。
回复 使用道具 举报
多态就是你可以说猫是猫科种类,也可以说是动物类;你可以说你是男人,你也可以说你是人,这就是多态
回复 使用道具 举报
多态增强了程序的扩展性,体现在多态中方法的调用上:编译看父类,运行看子类。只有这样,才可以增强扩展性
回复 使用道具 举报
多态事物存在的多种体现形态。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马