java中abstract class 与 interface (抽象类与接口)的区别
2016-05-04 15:05
489 查看
① 含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
-
-
\ | Abstract class | Interface |
---|---|---|
实例化 | 不能 | 不能 |
类 | Java中单继承 | 一个类可以实现多个接口 |
数据成员 | 可有自己的 | 静态的不能被修改即必须是static final |
方法 | 可以私有的、非abstract方法、静态方法,方法必须有实现 | 不可有私有的、静态的,默认是public,abstract 类型,不需要实现 |
变量 | 可有私有的,默认是friendly 型,其值可以在子类中重新定义,也可以重新赋值 | 不可有私有的,默认是public static final 型,且必须给其初值,实现类中不能重新定义,不能改变其值 |
设计理念 | 表示的是“is-a”关系 | 表示的是“like-a”关系 |
实现 | 要用extends继承 | 要用implements实现 |
构造方法 | 可以有 | 不可以有 |
相关文章推荐
- javaweb学习总结(九)—— 通过Servlet生成验证码图片
- java用double和float进行小数计算精度不准确
- javaweb学习总结(六)——Servlet开发(二)
- 并发编程学习总结(一) :java 创建线程的三种方式的优缺点和实例
- Java实现冒泡排序算法及对其的简单优化示例
- java从头到位实现区域三级下拉框
- javaweb学习总结(五)——Servlet开发(一)
- SpringMVC视图解析器
- java解析xml文件,返回xml字符串
- java枚举应用(二)
- Java获取时间 时间计算 转换时间工具类
- Java回调机制(CallBack)详解
- Java中 equals 与 == 的区别
- Java之命令模式(Command Pattern)
- Spring基础知识
- JAVA:将反射技术应用于工厂模式(Factory)和单例模式(Singleton)的简单代码
- ubuntu上运行eclipse出现 Call From master to localhost:9000 failed on connection exception
- java遍历文件目录并排序
- java Atomic原子更新
- MyEclipse 快捷键