【java】接口和抽象类的关联与区别是什么?

本文探讨了Java中抽象类与接口的区别与联系。重点介绍了它们的定义方式、使用场景及实现机制。并强调了接口作为方法集合的特点,以及抽象类能够包含已实现方法的灵活性。

    这是在java面试中几乎必问的一题。

    首先,接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制。interface是表示一个实体,而abstract class是一个概念。两者相似有时可以互换,但其实存在很大的区别。

    接口是公开的,里面不能有私有的方法或者变量,那是因为要让别人去用这个接口。抽象类可以有私有的方法或者变量,如果一个类中包含抽象方法,那么这个类就是抽象类。可以通过把类或者类中的某些方法声明abstract来表示一个类是抽象类。而接口就是指一个方法的集合,接口中包含的所有方法都没有方法体。

相同点:

1.都不能实例化

2.接口的实现类或者抽象类的子类都只有实现了这个接口或者抽象类中 方法后才可以被实例化

不同点:

1.接口只有定义,不能有方法的实现。但是抽象类可以有定义和实现,即方法可以在抽象类中被实现。

2.实现接口的关键字为implements,而继承抽象类的关键字为extends。一个类可以实现多个接口,但是一个类只能继承一个抽象类。

3.接口比较常用,日后维护和更改方便。而抽象类不太好改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值