大家好,很高兴我们可以继续学习交流Java高频面试题。本小节是Java基础篇章的第二小节,主要讲述抽象类与接口的区别,注解以及反射等知识点。熟练掌握本小节的知识点,可以帮助大家更好的复习与掌握Java面试中的基础类题目,并且在与面试官的热身题目中占据先机,留下好印象。
(1)抽象类和接口有什么区别?
答:抽象类和接口的主要区别可以总结如下。
- 抽象类中可以没有抽象方法,也可以抽象方法和非抽象方法共存
- 接口中的方法在JDK8之前只能是抽象的,JDK8版本开始提供了接口中方法的default实现
- 抽象类和类一样是单继承的;接口可以实现多个父接口
- 抽象类中可以存在普通的成员变量;接口中的变量必须是static final类型的,必须被初始化,接口中只有常量,没有变量
解析:
基础题目,绝对的基础并且高频的面试考察点。在Java中,我们通过abstract来定义抽象类,通过interface关键字来定义接口。如下所示:
// 这是一个抽象类
abstract class Animal{
}
// 这是一个接口
interface Bird{
}
我们知道接口和抽象类中都可以定义抽象方法,然后交由其实现类来实现该抽象方法。来看如下的面试官追问。