接口与抽象类的区别(待更新....)
来源:互联网 发布:气象数据质量控制 编辑:程序博客网 时间:2024/05/17 02:55
根据本人的工作经验来讲,最重要的区别有3点:
1)概念的不同
接口更倾向与设计的使用;抽象类则倾向于实现
2)最明显的区别
抽象类可以提供部分方法的具体实现;接口只能声明方法,不能实现
3)最重要的区别
接口可以多继承(实现);抽象类只能单继承(实现)
接口概念
一个没有声明任何方法的接口叫做标识接口.
1)概念的不同
接口更倾向与设计的使用;抽象类则倾向于实现
2)最明显的区别
抽象类可以提供部分方法的具体实现;接口只能声明方法,不能实现
3)最重要的区别
接口可以多继承(实现);抽象类只能单继承(实现)
接口概念
一个没有声明任何方法的接口叫做标识接口.
含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。
下面比较一下两者的语法区别:
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4. 抽象类中的抽象方法的访问类型可以是public,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static类型,并且默认即为public static类型。
7. 一个类可以实现多个接口,但只能继承一个抽象类。
abstract的method 不可以是static的,因为抽象的方法是要被子类实现的,而static与子类扯不上关系!
0 0
- 接口与抽象类的区别(待更新....)
- 抽象类与接口的区别 - [ Java 接口 抽象类 ]
- 抽象类与接口类的区别
- 接口类与抽象类的区别
- 抽象类与接口“类”的区别
- 抽象类与接口的区别
- 转载:抽象类与接口的区别
- 抽象类与接口的区别(1)
- 抽象类与接口的区别
- 抽象类与接口的区别
- 转载:抽象类与接口的区别
- 抽象类与接口的区别 [转]
- 抽象类与接口的区别
- 抽象类与接口的区别
- 抽象类与接口的区别
- 抽象类与接口的区别
- 抽象类与接口的区别 (good)
- 抽象类与接口的区别
- oracle报错问题
- 数据库学习
- JQuery事件( mouseover() 方法 mouseout() 方法 )
- Iterator循环的用法
- volley 获取cookie总结
- 接口与抽象类的区别(待更新....)
- 众金微信注册送豪礼
- netlink中常用宏定义 -- netlink
- FileNotFoundException: /mnt/sdcard/test: open failed: 。。文件找不到异常
- 笛卡尔树构建
- 通过HTTP通信的API的安全
- hdu4268 Alice and Bob,multiset
- tomcat6.0下解决struts2.2中文乱码
- SVM相关资源汇总[matlab-libsvm-class-regress](by faruto)