您的位置:首页 >Java 面试干货:解析接口和抽象类的常见问题
发布于2025-01-17 阅读(0)
扫一扫,手机访问

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:面试中常见的陷阱问题
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9