java中接口和抽象类的区别
2015-10-25 21:15
549 查看
一直觉得接口和抽象类是两个很一样的东西,但是最近写的一些代码却让自己开始有所思考。纵观抽象类和接口的用处,主要用来给继承的,然后实现一定的方法,但是为什么要要有两个如此类似的两个东西的存在。
接口的优势:
Java是只支持单继承的,这样一方面大大的简化了Java,但是也带来了一些弊端,因为有时候需要的方法不是单继承就能解决的,而是需要实现很多不同的方法。而这个时候接口久出现了,你完成可以实现很多的接口。是的,接口最明显的优势是“实现了Java的多继承”。
抽象类的优势:
抽象类的功能接口都能实现,那为什么还需要抽象类呢?抽象类有一个重要的性质是,抽象类中的方法是可以有实体的。也就是说,如果你需要一个类似接口的功能时,但是方法里面很大的一部分是重复的,也就是说如果你还是使用接口来实现的话,那样就会在每一个实现接口的类中重复的写很多的代码。如果用抽象类,你就完全可以只需要写在抽象类中就行了。
所以呢,Java中设计抽象类和接口同时存在是有很大的意义的。
接口的优势:
Java是只支持单继承的,这样一方面大大的简化了Java,但是也带来了一些弊端,因为有时候需要的方法不是单继承就能解决的,而是需要实现很多不同的方法。而这个时候接口久出现了,你完成可以实现很多的接口。是的,接口最明显的优势是“实现了Java的多继承”。
抽象类的优势:
抽象类的功能接口都能实现,那为什么还需要抽象类呢?抽象类有一个重要的性质是,抽象类中的方法是可以有实体的。也就是说,如果你需要一个类似接口的功能时,但是方法里面很大的一部分是重复的,也就是说如果你还是使用接口来实现的话,那样就会在每一个实现接口的类中重复的写很多的代码。如果用抽象类,你就完全可以只需要写在抽象类中就行了。
所以呢,Java中设计抽象类和接口同时存在是有很大的意义的。
相关文章推荐
- java使用new Date()和System.currentTimeMillis()获取当前时间戳
- 不用打开Eclipse就可以执行的命令
- Eclipse使用技巧及个性化设计
- 老鸟谈谈JAVA EE的学习
- java 代码格式化
- 【Java基础】Java类及成员和修饰符的关系
- Java中的线程中断:interrupt()、interrupted()和isInterrupted
- struts2 标签问题----escape="false" 这个属性
- Struts2中过滤器和拦截器的区别
- myeclipse在mac中字体模糊问题
- SSH学习--struts的action中BaseAction的作用
- [JavaWeb基础] 026.JAVA中使用Axis搭建webservice-环境搭建(一)
- java多线程之生产者消费者经典问题
- Java简介
- JAVA中的反射机制
- 再谈备忘录模式 (memento pattern) Java
- java作业04(动手动脑)
- 摘自<编写高质量代码:改善Java程序的151个建议>
- Spring MVC常用的注解
- Spring Data学习笔记-查询方法