【java】接口和抽象类的关联与区别是什么?
2018-02-09 23:19
239 查看
这是在java面试中几乎必问的一题。
首先,接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制。interface是表示一个实体,而abstract class是一个概念。两者相似有时可以互换,但其实存在很大的区别。
接口是公开的,里面不能有私有的方法或者变量,那是因为要让别人去用这个接口。抽象类可以有私有的方法或者变量,如果一个类中包含抽象方法,那么这个类就是抽象类。可以通过把类或者类中的某些方法声明abstract来表示一个类是抽象类。而接口就是指一个方法的集合,接口中包含的所有方法都没有方法体。
相同点:
1.都不能实例化
2.接口的实现类或者抽象类的子类都只有实现了这个接口或者抽象类中 方法后才可以被实例化
不同点:
1.接口只有定义,不能有方法的实现。但是抽象类可以有定义和实现,即方法可以在抽象类中被实现。
2.实现接口的关键字为implements,而继承抽象类的关键字为extends。一个类可以实现多个接口,但是一个类只能继承一个抽象类。
3.接口比较常用,日后维护和更改方便。而抽象类不太好改。
首先,接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制。interface是表示一个实体,而abstract class是一个概念。两者相似有时可以互换,但其实存在很大的区别。
接口是公开的,里面不能有私有的方法或者变量,那是因为要让别人去用这个接口。抽象类可以有私有的方法或者变量,如果一个类中包含抽象方法,那么这个类就是抽象类。可以通过把类或者类中的某些方法声明abstract来表示一个类是抽象类。而接口就是指一个方法的集合,接口中包含的所有方法都没有方法体。
相同点:
1.都不能实例化
2.接口的实现类或者抽象类的子类都只有实现了这个接口或者抽象类中 方法后才可以被实例化
不同点:
1.接口只有定义,不能有方法的实现。但是抽象类可以有定义和实现,即方法可以在抽象类中被实现。
2.实现接口的关键字为implements,而继承抽象类的关键字为extends。一个类可以实现多个接口,但是一个类只能继承一个抽象类。
3.接口比较常用,日后维护和更改方便。而抽象类不太好改。
相关文章推荐
- java中接口和抽象类有什么区别,举例!
- Java技术_Java千百问(0033)_接口和抽象类有什么区别
- 【JAVA中抽象类与接口的区别,分别在什么情况下使用它们】
- java 抽象类和接口有什么区别
- JAVA中抽象类与接口的区别,分别在什么情况下使用它们
- 在java中,接口与抽象类有什么区别?(转)
- java中抽象类和接口的区别
- Java中抽象类和接口的区别
- java基础之接口与抽象类的区别
- Java 接口和抽象类区别
- 接口和抽象类有什么区别
- 面试时必问题:接口和抽象类 有什么区别??
- Java基础(8):面向对象—抽象类和接口的区别和各自特点
- java 抽象类与接口的区别介绍
- 详细解析Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- java 中抽象类与接口的区别
- 详细解析Java中抽象类和接口的区别
- java中抽象类跟接口的区别(转载)
- 总结抽象类与接口的关联和区别