Java有了接口,为什么还需要抽象类 RT。热烈欢迎各位舌战。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 抽象类与接口紧密相关。然接口又比抽象类更抽象,这主要体现在它们的差别上:1)类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。2)抽象类当中可以存在非抽象的方法,可接口不能且它里面的方法只是一个声名必须用public来修饰没有具体实现的方法。3)抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static fainl)。4)这一点也是最重要的一点本质的一点"抽象类是对象的抽象,然接口是一种行为规范"。 1)在继承抽象类时,必须覆盖该类中的每一个抽象方法,而每个已实现的方法必须和抽象类中指定的方法一样,接收相同数目和类型的参数,具有同样的返回值,这一点与接口相同。 2)当父类已有实际功能的方法时,该方法在子类中可以不必实现,直接引用的方法,子类也可以重写该父类的方法(继承的概念)。 3)而实现 (implement)一个接口(interface)的时候,是一定要实现接口中所定义的所有方法,而不可遗漏任何一个。 4)另外,抽象类不能产生对象的,但可以由它的实现类来声明对象。在实现接口时,我们也常写一个抽象类,来实现接口中的某些子类所需的通用方法,接着在编写各个子类时,即可继承该抽象类来使用,省去在每个都要实现通用的方法的困扰。 首先java接口和抽象类代表的就是抽象类型,就是我们需要提出抽象层的具体实现,如果要提高程序的复用率,可维护性,可扩展性,就必须面向接口和抽象编程,正确使用他们。 (1)抽象类可以提供实现方法,接口不能这是抽象类的唯一优点,而且非常有用,例如,你定义一个接口,子类不需要他的所有方法,可是你没办法不去实现所有方法,因为你实现的是接口而不是抽象类,具体办法后面解释(2)抽象类只能继承一次,而可以实现多个接口这样接口的优点就出来了,例如每个接口可以代表一种最顶层的抽象,可以理解为代表一类东西,如果一个类实现了多个接口,那这个类就有了多种类型,即接口是定义混合类型的理想工具最后:有一种设计模式,就是,默认适配模式,意思就是说,首先定义一个接口,通过抽象类实现这个接口,并实现一些子类不需要一定实现的方法,然后,子类就可以选择是继承接口,实现所有方法,还是直接继承这个抽象类实现具体需要的方法,当然实现这个接口的抽象类可以不止一个,我本人认为,如果你抽象出一个父类,然后让子类直接继承这个父类是有问题的,因为最顶层应该是抽象类型O(∩_∩)O~希望对你有帮助\(^o^)/~ 建议看看这个帖子http://topic.csdn.net/u/20100312/10/822b0e94-8d2f-4bf0-9746-3424eaea40ce.html 因为有些程序员比使用接口的人懒惰,但比使用类的人勤奋good luck 一个class 如果extends abstract class 那么它必须重写父类中的所有抽象方法,或者继续让它抽象。但如果这个class 实现的是一个interface 那么我们没有必要再去关心那些我用不到的方法,因为我只需要在接口中定义我需要的就可以了。这也是接口的好处,能够实现多继承 使用接口可以弥补Java类只能单继承的不足。 你所说的就是 标识接口。标识接口表明实现了它的类属于一个特定的类型。比如java中很有名的应用 java.io.Serializable和java.rmi.Remote.我觉得主要是应用在某一类的类的共同特征就是某一个特性,比如可序列化,但是由于实现方式实在是多样化,没有办法提炼到更上一层的接口中,所以就只好保持空接口。另外,抽象工厂模式中的顶级工厂和顶级产品,就应用了标识接口。 只要实现了这些接口的都认为是工厂类型或者产品类型。 呵呵 接口是各类问题共有行为的定义,如Clone接口等而抽象类是对某类问题行为与数据域的定义 关于java使用RAS加密算法问题 高手快快来啊!这个怎么解决啊! 求助:webSphere中部署web service的问题 数据库的值进行切割 POi操作Excel写注释,为什么只有最后一个单元格才生效? javabean连接数据库? 关于一条HQL语句的问题 请问大虾:关于hibernate中Configuration的一个问题 高分请教,我在学习 struts in action 中 有点问题 请教高手! 高分求进销存系统,最好是用struts做的 js文件下载 进度条 打包时。。缺少SQLJDBC
2)当父类已有实际功能的方法时,该方法在子类中可以不必实现,直接引用的方法,子类也可以重写该父类的方法(继承的概念)。
3)而实现 (implement)一个接口(interface)的时候,是一定要实现接口中所定义的所有方法,而不可遗漏任何一个。
4)另外,抽象类不能产生对象的,但可以由它的实现类来声明对象。
在实现接口时,我们也常写一个抽象类,来实现接口中的某些子类所需的通用方法,接着在编写各个子类时,即可继承该抽象类来使用,省去在每个都要实现通用的方法的困扰。
这是抽象类的唯一优点,而且非常有用,例如,你定义一个接口,子类不需要他的所有方法,可是你没办法不去实现所有方法,因为你实现的是接口而不是抽象类,具体办法后面解释
(2)抽象类只能继承一次,而可以实现多个接口
这样接口的优点就出来了,例如每个接口可以代表一种最顶层的抽象,可以理解为代表一类东西,如果一个类实现了多个接口,那这个类就有了多种类型,即接口是定义混合类型的理想工具
最后:有一种设计模式,就是,默认适配模式,意思就是说,首先定义一个接口,通过抽象类实现这个接口,并实现一些子类不需要一定实现的方法,然后,子类就可以选择是继承接口,实现所有方法,还是直接继承这个抽象类实现具体需要的方法,当然实现这个接口的抽象类可以不止一个,我本人认为,如果你抽象出一个父类,然后让子类直接继承这个父类是有问题的,因为最顶层应该是抽象类型O(∩_∩)O~希望对你有帮助\(^o^)/~
http://topic.csdn.net/u/20100312/10/822b0e94-8d2f-4bf0-9746-3424eaea40ce.html
但如果这个class 实现的是一个interface 那么我们没有必要再去关心那些我用不到的方法,因为我只需要在接口中定义我需要的就可以了。这也是接口的好处,能够实现多继承
你所说的就是 标识接口。标识接口表明实现了它的类属于一个特定的类型。
比如java中很有名的应用 java.io.Serializable和java.rmi.Remote.我觉得主要是应用在某一类的类的共同特征就是某一个特性,比如可序列化,但是由于实现方式实在是多样化,没有办法提炼到更上一层的接口中,所以就只好保持空接口。另外,抽象工厂模式中的顶级工厂和顶级产品,就应用了标识接口。
只要实现了这些接口的都认为是工厂类型或者产品类型。 呵呵
而抽象类是对某类问题行为与数据域的定义