java 接口和抽象
2015-12-15 15:53
281 查看
Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以(就是interface中只能定义方法,而不能有方法的实现,而在abstract class中则可以既有方法的具体实现,又有没有具体实现的抽象方法),这大概就是Java抽象类唯一的优点吧,但这个优点非常有用。如果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都一下子都得到了这个新方法,而Java接口做不到这一点,如果向一个Java接口里加入一个
新方法,所有实现这个接口的类就无法成功通过编译了,因为你必须让每一个类都再实现这个方法才行,这显然是Java接口的缺点
简单来说,接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.
新方法,所有实现这个接口的类就无法成功通过编译了,因为你必须让每一个类都再实现这个方法才行,这显然是Java接口的缺点
简单来说,接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.
相关文章推荐
- Jdk1.8的安装
- Java国际化和Spring国际化比较
- 初识struts
- 使用Java匿名类直接实例化接口
- MyEclipse has detected that less than 5% of the 22MB of PS Survivor Space (Heap memory) space remain
- java之JDBC相关整理
- Struts2-Interceptor的逻辑意义
- java 正则表达式 匹配问题
- RxJava使用场景小结
- 你应该将应用迁移到Spring 4的五个原因
- Spring中的AOP 在Advice方法中获取目标方法的参数(顶)
- java.lang.VerifyError
- JAVA的静态变量、静态方法、静态类
- SpringMVC的定时任务的配置
- JAVA标准输入--SCANNER
- JAVA关于HashMap浅谈
- Spring+SpringMVC+Mybatis 多数据源整合
- Java学习----对象的构造
- struts结合ECharts的用法
- java+selenium 截取某一元素的图片的方法