接口和抽象类作用:接口: 定义必须的行为,强制实现类遵守特定规范。抽象类: 定义通用行为,强制子类继承它,提供部分实现,允许子类定制特定行为。设计原则:接口: 保持小而专注,定义必须的行为。抽象类: 仅声明抽象方法,提供具体方法以实现通用行为。示例:形状类层次结构中,shape 接口定义获取面积行为,abstractshape 抽象类提供宽度和高度字段,rectangle 和 circle 类继承抽象类并提供特定形状的面积计算方法。

Java 中接口和抽象类的作用和设计原则
接口
- 定义方法但不提供实现。
- 声明一系列公共常量。
- 强制实现它的类提供所有方法的实现。
- 语法:
public interface InterfaceName { ... }
抽象类
立即学习“Java免费学习笔记(深入)”;
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录。有需要的朋友可以下载看看
- 定义方法,可以是抽象方法或具体方法。
- 抽象方法没有实现,必须由子类实现。
- 允许字段和构造函数。
- 语法:
public abstract class AbstractClassName { ... }
作用
接口
- 实现解耦,允许类专注于自己的职责。
- 促进模块化和可扩展性,使组件可以轻松地互换和扩展。
- 定义行为合同,强制实现类遵守特定规范。
抽象类
立即学习“Java免费学习笔记(深入)”;
- 定义通用行为并强制子类继承它。
- 提供部分实现,减少子类中的重复代码。
- 提供钩子方法,允许子类定制特定行为。
设计原则
接口
- 仅定义必须的行为。
- 方法名称应清晰简明,表示预期行为。
- 接口应该保持小而专注。
抽象类
立即学习“Java免费学习笔记(深入)”;
- 仅声明抽象方法,定义公共行为。
- 提供具体方法以实现通用行为。
- 考虑使用抽象类而不是接口,当需要共享实现时。
实战案例
考虑一个简单的形状类层次结构:
**`java
interface Shape {
double getArea();
}
abstract class AbstractShape implements Shape {
protected double width;
protected double height;
public AbstractShape(double width, double height) {
this.width = width;
this.height = height;
}
public double getWidth() {
return width;
}
public double getHeight() {
return height;
}}
class Rectangle extends AbstractShape {
public Rectangle(double width, double height) {
super(width, height);
}
@Override
public double getArea() {
return width * height;
}}
class Circle extends AbstractShape {
public Circle(double radius) {
super(radius, radius);
}
@Override
public double getArea() {
return Math.PI * width * width;
}}
public class Main {
public static void main(String[] args) {
Shape rectangle = new Rectangle(4, 5);
Shape circle = new Circle(3);
System.out.println("Rectangle area: " + rectangle.getArea());
System.out.println("Circle area: " + circle.getArea());
}}
在这个例子中: * `Shape` 接口定义了一个通用行为:获取形状面积。 * `AbstractShape` 抽象类提供了通用行为的通用实现,例如宽度和高度字段。 * `Rectangle` 和 `Circle` 类通过继承 `AbstractShape` 类来扩展形状类层次结构,并提供特定形状的具体方法来计算面积。










