java中抽象类与接口的异同
2015-12-07 20:50
330 查看
接口和抽象类
• 接口和抽象类的异同
1、 接口和抽象类相似,它们都具有如下特征
• 接口和抽象类都不能被实例化。只能被其他类实现和继承。
• 接口和抽象类都可以包含抽象方法,实现接口和抽象类的类都必须实现这些抽象方法
2、接口和抽象类有如下不同
• 抽象类与接口定义不同:抽象类abstract class ,接口 interface
• 接口里只能包含抽象方法,不包含已经实现的方法;抽象类则完全可以包含普通的方法。
• 接口里不能定义静态方法;抽象类可以定义静态方法
• 接口里只能定义静态常量属性,不能定义普通属性;抽象类里既可以定义普通属性,也可以定义静态常量
• 接口不包含构造函数;抽象类可以包含构造函数,抽象类里的构造函数并不是用于创建对象,而是让其子类调用这些构造函数来完成属于抽象类的初始化操作。
• 接口不包含初始化块,但抽象类可以包含初始化块
• 一个类最多只能有一个直接父类,包括抽象类;但一个类可以直接实现多个接口,通过实现多个接口可以弥补java的单继承不足
总结:
1、普通类中有的东西,抽象类都包含,此外抽象类比普通类多了抽象方法。
2、接口中只包含抽象方法和静态常量属性。
• 接口和抽象类的异同
1、 接口和抽象类相似,它们都具有如下特征
• 接口和抽象类都不能被实例化。只能被其他类实现和继承。
• 接口和抽象类都可以包含抽象方法,实现接口和抽象类的类都必须实现这些抽象方法
2、接口和抽象类有如下不同
• 抽象类与接口定义不同:抽象类abstract class ,接口 interface
• 接口里只能包含抽象方法,不包含已经实现的方法;抽象类则完全可以包含普通的方法。
• 接口里不能定义静态方法;抽象类可以定义静态方法
• 接口里只能定义静态常量属性,不能定义普通属性;抽象类里既可以定义普通属性,也可以定义静态常量
• 接口不包含构造函数;抽象类可以包含构造函数,抽象类里的构造函数并不是用于创建对象,而是让其子类调用这些构造函数来完成属于抽象类的初始化操作。
• 接口不包含初始化块,但抽象类可以包含初始化块
• 一个类最多只能有一个直接父类,包括抽象类;但一个类可以直接实现多个接口,通过实现多个接口可以弥补java的单继承不足
总结:
1、普通类中有的东西,抽象类都包含,此外抽象类比普通类多了抽象方法。
2、接口中只包含抽象方法和静态常量属性。
相关文章推荐
- Java 理论与实践: 正确使用 Volatile 变量
- 性能分析工具之-- Eclipse Memory Analyzer tool(MAT)(一)
- Java&Xml教程(一)简介
- Java&Xml教程(一)简介
- Java&Xml教程(一)简介
- JAVA设计模式之单例模式
- Java 程序性能优化《第一章》Java性能调优概述 1.4小结
- 对内存溢出查看heapdump文件
- springmvc配置shiro进行权限控制
- java 回调函数很好懂
- java中volatile关键字的含义
- Java 程序性能优化《第一章》Java性能调优概述 1.3基本调优策略和手段
- java编码与乱码汇总
- Spring MVC事务配置
- 从头认识java-12.3 instanceof、isInstance和isAssignableFrom
- Java开发 Eclipse使用技巧
- java中简单工厂模式(静态工厂方法模式)
- java 图片上写入文字
- java之文件与base64字符之间的相互转换
- java 中利用Matcher类提供的函数进行文本替换