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

© 程有愿 中级黑马   /  2012-7-2 09:41  /  2095 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java中的继承,接口,和多太之间的关系和区别是什么样子的?

8 个回复

倒序浏览
有继承关系,才会有多态
回复 使用道具 举报
继承,多态,封装是面向对象的三种特性
你说的接口,是JAVA语言用来实现继承和多态的一种数据结构
你问的这个问题基本上要从面向对象的基础知识开始讲,好好看视频吧,如果视频里关于面向对象的编程方法讲的你还是不懂,就找本书看看吧
回复 使用道具 举报
多太只存在接口与接口之间的吧,一个类可implements多个接口,与继承貌似没多大的联系啊
回复 使用道具 举报
我搞错了  接口与接口之间可以存在多继承而不是多态,一个类又可以有多个接口,多态是类与类之间的关系,至少存在继承才能出现多态,貌似你是对的!
回复 使用道具 举报
转身丶从此陌 发表于 2012-7-2 09:55
多太只存在接口与接口之间的吧,一个类可implements多个接口,与继承貌似没多大的联系啊 ...

实现也是继承
回复 使用道具 举报
JAVA中的继承是为了实现代码的重用性,比如说有一个父亲和儿子都是木匠,为了降低成本,增加工具的利用,儿子从父亲那么继承了他所有的工具,技术更新换代比较快,儿子为了跟上时代步伐,购进了新的工具时,那么旧的工具就会被覆盖掉,不使用了。为了防止出现问题,java中的继承是向上单继承,也就是说,一个子类只能有一个父类。
多态是指一个事物存在的多种表现形态,这可以提高代码的扩展性,接口就是一种多态。接口中的方法都是抽象的,实现接口必须实现接口的所有方法。另外,在接口中是存在多继承的,比如:
interface A
{
void play();
}
interface B
{
  void hit();
}
interface C extends A,B//在这里的多继承是可以的,此时C中就有了A,B中的两个方法。
{
}
回复 使用道具 举报
楼上的理解的比较透彻嘛,呵呵 ,我虽说理解但没那么透彻 ,谢谢饿!
回复 使用道具 举报
本帖最后由 feigecal 于 2012-7-2 11:47 编辑

继承是面向对象的第二个特征,当类与类之间有共性的属性或描述的时候,那么可以把它们之间的共性描述提取出来,单独进行描述,然后让它被继承,继承是通过关键字extends实现,例如class  A  extends   B就是说A继承了B。子类继承了父类,子类就拥有了父类的功能,所以在具体调用时最好要创建最子类的对象,因为有可能父类不能创建对象,再说了,创建子类对象可以使用更多的功能。父类不能创建对象的情况就是父类是抽象类,当多个类中有相同功能,但功能主体不同,这里可以进行向上抽取,但只抽取功能定义,不抽取功能主体,就是抽象类,抽取出来的功能定义就是抽象方法,这里抽象类就不能创建对象,因为调用抽象方法是没有意义地,但可以由子类继承并覆盖抽象方法来创建子类对象,这样可以多个子类共用一个功能定义,所以继承提高了代码的复用性,让类和类之间产生了关系,也正是有了这个关系才有了多态的特性。例如你建一个Person类,然后再建一个Student和Worker类来继承Person类,那你建立对象的时候可以可以直接new一个Person类的对象,那么后面可以是Student对象也可以是Worker对象,如Person  p=new  Student();这里实体在具备Student类型的同时也具备了Person类型,一个事物有了多种表现形态,就是多态了。呵呵。当然多态也可以体现在函数上,如重载和覆盖。多态的好处,当你定义一个函数时,可以把参数类型设为父类类型,那么它所有的子类类型的对你都可以传进去,就节省了代码了,当然好处不止这一点了,你明白 就好。继承虽然提高了代码的复用性,但是不支持多继承,因为如果要继承多个父类的话,当多个父类中的相同的功能时子类会不知道执行那一个,就存在了安全隐患了。所以为了弥补这一点,就出现了接口,接口可以多实现,来扩展程序的功能。接口也可以初步理解为一个特殊的抽象类,如果一个抽象类中的所有方法都是抽象的,那么可以用接口的形式表示。接口的成员都是public的,只有常量和抽象方法。类可以通过implements来实现接口,接口也不可以创建对象,这点和抽象类一样,需要被子类实现并覆盖它的全部抽象方法后实例化子类。
以上都是临时通过回忆看过的基础视频教程总结的,可能不全面,希望能帮到你吧,不对之处还请包涵并指正啊,呵呵
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马