您的位置:首页 > 编程语言 > Java开发

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

2018-02-09 23:19 239 查看
    这是在java面试中几乎必问的一题。
    首先,接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制。interface是表示一个实体,而abstract class是一个概念。两者相似有时可以互换,但其实存在很大的区别。
    接口是公开的,里面不能有私有的方法或者变量,那是因为要让别人去用这个接口。抽象类可以有私有的方法或者变量,如果一个类中包含抽象方法,那么这个类就是抽象类。可以通过把类或者类中的某些方法声明abstract来表示一个类是抽象类。而接口就是指一个方法的集合,接口中包含的所有方法都没有方法体。
相同点:
1.都不能实例化
2.接口的实现类或者抽象类的子类都只有实现了这个接口或者抽象类中 方法后才可以被实例化
不同点:
1.接口只有定义,不能有方法的实现。但是抽象类可以有定义和实现,即方法可以在抽象类中被实现。
2.实现接口的关键字为implements,而继承抽象类的关键字为extends。一个类可以实现多个接口,但是一个类只能继承一个抽象类。
3.接口比较常用,日后维护和更改方便。而抽象类不太好改。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: