java抽象类与接口的区别(谈谈自己的理解)
2016-03-14 11:15
337 查看
抽象类?什么是抽象类?
从名字上来讲,我觉得就是对类的一个抽象,把类(事物)抽象出来,当做模板,也就是说在有很多类的时候,我们把一些相似的类的某些方法,某些成员变量抽象出来作为一个模板,让这些类更方便的去继承。所以,在抽象类中,有抽象方法也有普通方法。一个抽象类就是包含抽象方法的类(java编程思想)。
在继承抽象类的时候,子类必须得实现抽象类中的所有抽象方法,抽象类也无法去创建实例,因为里面含有抽象的方法。
接口?什么是接口?
接口通常来说是一个对行为的抽象,它是提供给别人调用的方法。它里面所有的方法都必须为public,而且它的成员变量必须是public static final 的。
接口与抽象类的区别:
1.继承抽象类的子类们的本质都是相似的,它们体现的是一种 “is-a" 的关系,就像动物中的猫和狗;而对于接口的继承更多的是一种行为的相似,是一种 “like-a” 的关系,比如飞机和鸟,它们都具有飞的行为,却并不需要在本质上相似。
2.抽象类可以拥有任意范围的成员数据,既可以是抽象,也可以是非抽象;但是接口,所有的方法必须是抽象的,所有的成员变量必须是 public static final的,某种程度上来说,接口是对抽象类的一种抽象。
3.一个类只能继承一个抽象类,但却可以实现多个接口。
从名字上来讲,我觉得就是对类的一个抽象,把类(事物)抽象出来,当做模板,也就是说在有很多类的时候,我们把一些相似的类的某些方法,某些成员变量抽象出来作为一个模板,让这些类更方便的去继承。所以,在抽象类中,有抽象方法也有普通方法。一个抽象类就是包含抽象方法的类(java编程思想)。
在继承抽象类的时候,子类必须得实现抽象类中的所有抽象方法,抽象类也无法去创建实例,因为里面含有抽象的方法。
接口?什么是接口?
接口通常来说是一个对行为的抽象,它是提供给别人调用的方法。它里面所有的方法都必须为public,而且它的成员变量必须是public static final 的。
接口与抽象类的区别:
1.继承抽象类的子类们的本质都是相似的,它们体现的是一种 “is-a" 的关系,就像动物中的猫和狗;而对于接口的继承更多的是一种行为的相似,是一种 “like-a” 的关系,比如飞机和鸟,它们都具有飞的行为,却并不需要在本质上相似。
2.抽象类可以拥有任意范围的成员数据,既可以是抽象,也可以是非抽象;但是接口,所有的方法必须是抽象的,所有的成员变量必须是 public static final的,某种程度上来说,接口是对抽象类的一种抽象。
3.一个类只能继承一个抽象类,但却可以实现多个接口。
相关文章推荐
- Eclipse中导入SVN库里的Maven项目
- Struts2的拦截器(拦截器概述)
- struts2导出excel
- Spring+MyBatis双数据库配置
- java collecton 类图
- Java根据sessionId a445 获取Session对象
- java解析Excel
- java文件批量打包下载
- struts2框架从数据库批量取得数据集并在前台页面循环显示
- Spring4.0学习笔记--AOP
- MyEclipse性能优化
- java.util.ConcurrentModificationException 解决办法
- JAVA中基本数据类型和封装类的区别Integer和Double为例
- spring学习笔记(2)文件资源访问接口Resource
- Java的poi技术读取和导入Excel
- eclipse快捷键
- 因为本地没有配置 localhost 导致的 eclipse 的奇葩问题
- Java——检索一段话中出现次数最多的英文单词
- Java代码优化--尽可能地使用stack(栈)变量(方法内部的局部变量)
- Java中static关键字详述