java抽象类 接口的区别 java抽象类 接口的区别 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建议去看看<JAVA编程思想> 一个类可以实现多个接口,但只能继承一个类,抽象类里有公共属性,结构则是要实现的方法详细的推荐查阅Thinking in Java,或者百度一下 一个类可以实现多个接口,但只能继承一个类,抽象类里有公共属性,结构则是要实现的方法详细的推荐查阅Thinking in Java,或者百度一下 首先,abstract class在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。也许,这是Java语言的设计者在考虑Java对于多重继承的支持方面的一种折中考虑吧。 其次,在abstract class的定义中,我们可以赋予方法的默认行为。但是在interface的定义中,方法却不能拥有默认行为,为了绕过这个限制,必须使用委托,但是这会 增加一些复杂性,有时会造成很大的麻烦。 在抽象类中不能定义默认行为还存在另一个比较严重的问题,那就是可能会造成维护上的麻烦。因为如果后来想修改类的界面(一般通过abstract class或者interface来表示)以适应新的情况(比如,添加新的方法或者给已用的方法中添加新的参数)时,就会非常的麻烦,可能要花费很多的时间(对于派生类很多的情况,尤为如此)。但是如果界面是通过abstract class来实现的,那么可能就只需要修改定义在abstract class中的默认行为就可以了。 同样,如果不能在抽象类中定义默认行为,就会导致同样的方法实现出现在该抽象类的每一个派生类中,违反了"one rule,one place"原则,造成代码重复,同样不利于以后的维护。因此,在abstract class和interface间进行选择时要非常的小心。 前面已经提到过,abstarct class在Java语言中体现了一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"is a"关系,即父类和派生类在概念本质上应该是相同的。对于interface 来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的,仅仅是实现了interface定义的契约而已。可以参考http://linpyi.javaeye.com/blog/223871 类是来继承的:extends接口是来实现的:implements实现接口的必须重写里面的所有方法,而抽象类不必要,它只需要重写里面的抽象方法即可! 选择Java接口还是抽象类?http://hi.baidu.com/xun1573/blog/item/ecb6c0cca42c0b1600e9280c.html 1.接口是java的多继承关系 抽象类还是java的一个比较特殊的类,单继承 2.接口子类继承父类 要实现接口里面所有的方法 抽象类只是实现部分方法 ,但是要实现抽象方法 3.接口里面的成员变量都是final 类型 而抽象类的变量只是普通类里的类型 4.接口的方法必须是抽象的,而抽象类里可以有非抽象方法 就记得这么多了 ,去网站上查下 1、抽象类里面可以有抽象方法和非抽象方法,而接口里面只能定义抽象方法。2、抽象类里面可以有私有字段也可以有公有字段、方法,而接口里面只能定义是公共的(定义int类型的,默认为 public公共的 final常量)3、继承抽象类必须实现该抽象类的所有抽象方法(可以不实现非抽象方法),而接口必须是全部实现的。从简单编程的意义上讲,大致上就这些区别吧! 怎么显示界面 现能编写简单的java小程序,若想进一步提高水平该看什么书 求一个弹出和隐藏窗体的小程序 PROPERTIES 文件如何加入工程里? 如何在菜单条和工具条之间加上分隔线? 小弟有疑问,请教高手! 紧急求助 Java中有没有像c#中的ref关键字来引用传值 sql server的驱动程序在哪??? 如何截取某个网页的页面,将其源文件转化为String? valueof(), intvalue(0 parseint() 这三个方法怎么用,会的朋友请讲讲。 关于字符串替换问题
详细的推荐查阅Thinking in Java,或者百度一下
详细的推荐查阅Thinking in Java,或者百度一下
前面已经提到过,abstarct class在Java语言中体现了一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"is a"关系,即父类和派生类在概念本质上应该是相同的。对于interface 来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的,仅仅是实现了interface定义的契约而已。可以参考
http://linpyi.javaeye.com/blog/223871
接口是来实现的:implements
实现接口的必须重写里面的所有方法,而抽象类不必要,它只需要重写里面的抽象方法即可!
http://hi.baidu.com/xun1573/blog/item/ecb6c0cca42c0b1600e9280c.html
2.接口子类继承父类 要实现接口里面所有的方法 抽象类只是实现部分方法 ,但是要实现抽象方法
3.接口里面的成员变量都是final 类型 而抽象类的变量只是普通类里的类型
4.接口的方法必须是抽象的,而抽象类里可以有非抽象方法
就记得这么多了 ,去网站上查下
2、抽象类里面可以有私有字段也可以有公有字段、方法,而接口里面只能定义是公共的(定义int类型的,默认为 public公共的 final常量)
3、继承抽象类必须实现该抽象类的所有抽象方法(可以不实现非抽象方法),而接口必须是全部实现的。
从简单编程的意义上讲,大致上就这些区别吧!