Q1:什么是接口和抽象类? 接口: 定义了一组方法签名,但没有实现细节。 声明了类的契约,迫使实现该接口的类实现指定的方法。 抽象类: 可以同时包含抽象方法(没有实现细节)和具体方法(有实现细节)。 声明了类的行为,子类必须实现抽
Q1:什么是接口和抽象类?
Q2:接口和抽象类的区别?
| 特征 | 接口 | 抽象类 |
|---|---|---|
| 方法 | 只能声明,不能实现 | 可以声明和实现 |
| 实现 | 必须由实现其的类实现 | 可以通过子类实现 |
| 多重继承 | 支持多重继承 | 不支持多重继承 |
| 实例化 | 不能实例化 | 可以实例化(但不能创建对象) |
Q3:何时使用接口或抽象类?
Q4:接口多重继承和抽象类单多继承的关系?
Q5:接口中的 default 和 static 方法
Java 8 引入了接口的 default 和 static 方法:
演示代码:
interface Drawable {
void draw();
default void print() { System.out.println("Drawing..."); }
static void show() { System.out.println("Show drawing..."); }
}
class Circle implements Drawable {
@Override
public void draw() { System.out.println("Drawing a circle..."); }
}
public class Main {
public static void main(String[] args) {
Drawable circle = new Circle();
circle.draw();
Drawable.print();
Drawable.show();
}
}
输出:
Drawing a circle...
Drawing...
Show drawing...
Q6:抽象类中 final 和 static 方法
抽象类可以包含 final 和 static 方法:
Q7:接口和抽象类中的访问权限
接口中的所有方法和常量默认是 public 和 abstract 的。抽象类中的方法可以具有各种访问权限,但抽象方法默认是 public 和 abstract 的。
Q8:接口和抽象类的实例化和调用
Q9:接口和抽象类的比较
| 特征 | 接口 | 抽象类 |
|---|---|---|
| 多态性 | 支持 | 支持 |
| 抽象方法 | 必须声明 | 可以声明 |
| 具体方法 | 不支持 | 可以声明 |
| 多重继承 | 支持 | 不支持 |
| 实例化 | 不能实例化 | 可以实例化,但不能创建对象 |
| 调试 | 困难(在实现类中进行) | 相对容易(在抽象类中进行) |
| 灵活性和可扩展性 | 更灵活,可扩展性更强 | 灵活度较低,可扩展性较弱 |
Q10:面试中常见的陷阱问题
--结束END--
本文标题: Java 面试必备:接口与抽象类的常见问题解答
本文链接: https://www.lsjlt.com/news/572962.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-01
2024-04-03
2024-04-03
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0