2015年2月26日

关于接口和抽象类的区别

接口与抽象类的区别,每次面试的时候都会被问到。虽说每次都能答的上来,但是都是基于一些机械性的记忆。并不能深刻的理解,java里面为什么会引入接口和抽象类。他们在java里面的起到了什么作用。这里来讨论下我个人对于接口和抽象类的理解。

接口,个人觉得java里面引入接口的目的主要是为了“规范”,所谓的规范也就是标准,再直接点说就是接口用来规定某一些类应该有一些什么方法。 既然接口关注的仅仅是规范,并不关心具体的实现,所以,在接口里面的方法都是抽象方法,不能有具体的实现。规范的目的是为了让别人来遵守和使用的,所以接口里面的变量和方法都是public的。因为一个类可以满足不同的规范,所以接口是多继承的。

抽象类,顾名思义,是相对于普通的类来说,是抽象的。是对某一些类的一些共有特征的一种抽象,如果有一些类他们有着一些共同的方法和变量。我们就可以把他们抽象成一种类型,也可以说他们隶属于同一类型,该类型就是抽象出来的抽象类。既然抽象类是对具有某些共同点的类的一种抽象,所以一个类只能隶属于同一类型,所以类是单继承的。既然关心的是共同点,那么这个共同点既可以是抽象的也可以是非抽象的,也就是说抽象类里面既可以有抽象方法,也可以有非抽象的方法。只要是属于类的东西,都可以在抽象类里面存在。抽象类强调的是抽象性。就是把类的共有的特性抽象出来。所以,抽象类不能实例化。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值