Java用interface实现多继承!这是最主要的区别,其他还有很多小的区别!

解决方案 »

  1.   

    abstract class中的方法除了抽象方法之外还可以有已经实现了的方法。
    interface 中所有方法都没有实现。
    最顶端的类一般都是设计为interface,它比abstract class更加抽象,更加灵活。大大的有用,一般类层次设计都是由interface开始。
      

  2.   

    我的感觉是一般都用到interface,好像使用多态的时候,都是用interface的,好像没有人用abstract实现多态
      

  3.   

    我觉得应该这样理解接口的作用,你知道,JAVA中只有单继承,即每个类只能有一个父类(超类),当我们想同时用到两个类的方法时,想都继承是不可能的,这时候接口的作用就体现出来了:我们可以根据继承关系确定该继承哪个类,然后在实现需要用到的那个类的接口。
    举个最简单的例子:现在有“人”和“鸟”两个类,如果我想创造“超人”这个类,我就应该继承“人”,然后实现“鸟”的接口,达到会飞的目的。你觉得呢?:)
      

  4.   

    如果一个类包含一个接口但是不完全实现接口定义的方法,那么这个类必须定义成abstract型。否则要实现全部的方法
      

  5.   

    to litthree:
    在“鸟”的接口中,根本就没有鸟的特性,那么这个接口有用吗?
      

  6.   

    如果一个类包含一个接口但是不完全实现接口定义的方法,那么该类必须定义成abstract型。
      

  7.   

    我认为“超人”这个类应该继承“能飞”这个接口,而同样的“鸟”应该是个abstract class,当然也可以是interface,但是必须继承“能飞”这个接口。
      

  8.   

    to daturawing:
    不知interface能用在哪?
      

  9.   

    http://www.csdn.net/expert/topic/717/717381.xml?temp=.3920252如此例子,还可以在论坛上找到不少,interface绝对是个好东东,少不了的
      

  10.   

    共同切磋!
    我觉得可以这样理解抽象类和接口:
    首先,采用他们都是为了禁止生成该类的实例,作为一个父类使用;
    第二,抽象类中可以有成员变量,可以有抽象方法(需要继承他的子类去实现,如果他的子类没有实现该抽象方法,则该子类也必须是个抽象类!),也可以有带有方法实体的方法;
    而在接口中,只定义一些公共的方法名及其参数列表(同样需要实现(其实就是继承)他的类去实现,也同样如果实现他的类没有实现接口中定义的方法,则此类也必须是个抽象类!)。接口中没有成员变量,但它可以定义常量(必须初始化),但一般不这样做(除非一定要用接口进行常量管理),以保证接口的整洁。
    第三,由于java中的单继承性,所以要想实现多重继承,只能由接口去实现。
    所以,抽象类和接口适用的原则是:大多数情况下,应该首选接口去实现,除非确实需要带有成员变量(或是带有方法实体的方法),再选择抽象类。
      

  11.   

    有经验的大侠指点一下,是先学java好,还是先学jsp,哪一个比较容易掌握,对另外一个的学习有帮助。
      

  12.   

    楼上的这位兄台的问题,我也想问一下,我感觉我现在对jsp感觉比较混了,它里面在使用类时,需要在声明里写代码吗?还是就在htlm里写类的代码?
      

  13.   

    我觉得应该是先学JAVA,有一些JAVA的基础后,再学JSP,因为后者需要前者作为基础
      

  14.   

    interface is not for multi-inheritance at all!what can you inherit anyway? It does not have any implementation.Treat interface as a protocol, as a data type. for example, in functionkill(Person p)
    {
        p.die();
    }
    you really don't care how the Person is implemented, as long as it supports the die() method.So it make sense to have Person as an interface.
      

  15.   

    to fishone(fishone) 
    在“鸟”的接口中,根本就没有鸟的特性,那么这个接口有用吗?也有用啊,可以知道你是鸟啊。也就是java.io.Serialzation一样。
      

  16.   

    Serializable, Cloneable, blahblahable are hacks.
    a framework relying on RTTI/reflection is not a good framework unless you don't have any other way around. Having an interface without methods is appropriate when you need to provide better type protection. But when you need to use "instanceof" or "isInstance", that's a sign of bad design.in jdk, er interfaces, optional methods(NonSupportedOperationException) are so ugly!