java学习日记12,抽象(abstract)与接口(interface)

abstract

abstract关键字,只能修饰类与方法。

抽象类

1、顾名思义,抽象的,没有具体的实例,无法实例化
2、抽象类不能实例化也就意味着无法通过其对象调用其属性与方法,而必须通过其子类的对象进行调用。
3、抽象类中可以有普通方法和抽象方法,也可以没有,但通常有抽象方法的类才会用abstract修饰。

抽象方法

1、抽象方法没有方法体,相当于只给定了这个方法的格式规范,包括权限,返回值类型,方法名,形参列表等。
2、这也就意味着抽象方法无法直接调用,若一个抽象方法声明在一个非抽象类中,那么这个方法理应可以通过该类的的对象调用,但抽象方法又无法直接使用,所以,有抽象方法的类也必须声明为抽象类
3、继承了抽象方法的子类对抽象方法进行重写后方可调用该方法。若子类未重写抽象方法,则子类也必须声明为抽象类。

许多不同的类包含有相同的属性与方法,而具体的实现又各不相同,就可以将这些共性提取出来抽象化。

接口

1.接口使用interface来定义
2.Java中,接口和类是并列的两个结构
3.如何定义接口:定义接口中的成员
JDK7及以前:只能定义全局常量和抽象方法
JDK8:除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法。
4. 接口中不能定义构造器的!意味着接口不可以实例化
5. Java开发中,接口通过让类去实现(implements)的方式来使用。
如果实现类覆盖了接口中的所抽象方法,则此实现类就可以实例化。
如果实现类没覆盖接口中所的抽象方法,则此实现类仍为一个抽象类。
6. Java类可以实现多个接口 —>弥补了Java单继承性的局限性
格式:class AA extends BB implements CC,DD,EE
7. 接口与接口之间可以继承,而且可以多继承。

抽象类与接口的比较

感觉上,抽象类与接口都是对不同对象的共性的提取,不能实例化,都可以包含抽象方法。只是继承抽象类的要求更高,需要子类都具有抽象中所有的属性与方法等,而接口的实现只需实现类具有接口中定义的方法即可,接口可以被多实现,而抽象类只能单继承。
接口就像是为了更通用而降低了包含的内容的一致性要求,重新确定了格式要求的抽象类。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值