抽象类和接口的区别
2016-06-10 13:39
323 查看
抽象类
定义语法:
1. abstract class
2.访问修饰符都可以
3.里面可以是任意属性
4.有构造器
5.抽象的方法必须写 abstract
6.可以有实现方法
使用语法:
1.可以被子类继承,单继承
设计思想:
把一脉相承,与生俱来的属性和方法设计在抽象类之中。
接口:
定义语法:
1. interface
2.访问修饰符只能是 public 和默认
3.里面只能是公共静态常量
4.无构造器
5.抽象方法可以不写 abstract ,系统会自动默认。
6.1.8版本以前里面无实现方法,1.8可以添加实现方法,但是必须添加default关键字
使用语法:
1. 可以被子接口继承,多继承,可以被实现类实现,多实现
2. 接口中的方法不能被static
设计思想:
把外部可以附属添加的行为设计到接口中
区别:
1. 抽象类只能是单继承,而接口可以多实现,接口可以继承多接口
2. 抽象类可以通过implements关键字实现接口,但是接口只能使用extends关键字继承接口,多继承。
3. 抽象类强调所属关系。接口强调特定功能的实现。
4. 抽象类中并不是所有方法都是抽象方法,子类继承抽象类可以选择实现也可以选择声明其是一个抽象方法而不实现(有抽象方法的类,必须是抽象类)。
5. 抽象类是接口与类的中介。
6. 抽象类的变量默认是friendly类型,其值可以在子类中重新定义,也可以重新赋值,但是接口的变量默认是 public static final,实现类中无法重新定义,不能改变其值
相关文章推荐
- Oracle 11g R2+RAC+ASM+OracleLinux6.4安装详解(图)
- 1 thinkphp 如何访问控制层
- 算法与数据结构之简单排序
- jstl标签不起作用不管用,jstl标签直接输出表达式
- Failed to get the adb version: "/android-sdk/tools/adb"权限不够
- Android自定义View
- 如何将latex模板中的照片框去掉?
- Win 7 64位 单机Spark安装
- 第三方轮子处理内容的汇总
- 设计模式---简单工场模式
- 打开gps定位-->发回短信&拦截指令&锁屏&销毁数据&ComponentName
- 利用wrapper打包java编写的服务注册window服务
- 网络 协议
- 【GOF23设计模式】_装饰模式_IO流底层架构_装饰和桥接模式的区别JAVA240
- Android如何隐藏底部虚拟按键
- 农村土地确权之调查公示 —— ArcGIS中地块分布图标注设置说明[地块分布图制作]
- 【leetcode】96. Unique Binary Search Trees
- CSS3实现炫酷进度条
- PowerDesigner连接数据库附PowerDesigner15.1汉化破解版
- ACM:蓝桥杯:开灯问题