当前位置:首页 > Java 语言特性 > 正文

Java抽象类详解:从基础概念到实战应用,轻松掌握面向对象编程核心

public abstract class Animal {

// 类体内容

}

public abstract class Animal {

protected String name;

public Animal(String name) {
    this.name = name;
}

}

public class Dog extends Animal {

public Dog(String name) {
    super(name); // 必须调用父类构造方法
}

}

public abstract class Payment {

// 通用方法,子类直接继承使用
protected boolean validateParameters(Map<String, Object> params) {
    // 参数验证逻辑
    return true;
}

protected void logTransaction(String transactionId) {
    // 日志记录逻辑
}

// 抽象方法,子类必须实现
public abstract boolean processPayment(double amount);

}

Java抽象类详解:从基础概念到实战应用,轻松掌握面向对象编程核心

// 抽象类示例 public abstract class Animal {

protected String name;  // 实例变量
private int age;        // 私有变量

public Animal(String name) {
    this.name = name;   // 构造方法
}

public abstract void makeSound();

public void sleep() {   // 具体方法
    System.out.println("Sleeping...");
}

}

// 接口示例 public interface Flyable {

int MAX_HEIGHT = 1000;  // 默认public static final

void fly();             // 默认public abstract

// Java 8之后可以定义默认方法
default void land() {
    System.out.println("Landing...");
}

}

Java抽象类详解:从基础概念到实战应用,轻松掌握面向对象编程核心

public abstract class JdbcTemplate {

// 模板方法定义了固定流程
public final List<?> executeQuery(String sql) {
    // 1. 获取连接
    Connection conn = getConnection();
    // 2. 创建语句
    PreparedStatement stmt = conn.prepareStatement(sql);
    // 3. 执行查询
    ResultSet rs = stmt.executeQuery();
    // 4. 映射结果 - 这部分由子类实现
    List<?> result = mapResults(rs);
    // 5. 释放资源
    closeResources(conn, stmt, rs);
    return result;
}

// 抽象方法,子类必须实现
protected abstract List<?> mapResults(ResultSet rs);

}

// 抽象图形类 public abstract class Shape {

protected String color;

public Shape(String color) {
    this.color = color;
}

// 具体方法
public String getColor() {
    return color;
}

// 抽象方法
public abstract double calculateArea();
public abstract double calculatePerimeter();

// 具体方法
public void displayInfo() {
    System.out.println("图形颜色: " + color);
    System.out.println("面积: " + calculateArea());
    System.out.println("周长: " + calculatePerimeter());
}

}

// 具体子类 public class Circle extends Shape {

private double radius;

public Circle(String color, double radius) {
    super(color);
    this.radius = radius;
}

@Override
public double calculateArea() {
    return Math.PI * radius * radius;
}

@Override
public double calculatePerimeter() {
    return 2 * Math.PI * radius;
}

}

你可能想看:

相关文章:

  • Java优学网抽象方法教程:掌握抽象类与接口的核心用法2025-10-17 04:22:54
  • 文章已关闭评论!