【java】Java基础——抽象类

  1. 抽象类是一种特殊的类,它不能被直接实例化,只能作为其他类的基类或父类来继承并提供共享的行为和属性。抽象类用于定义一组相关的类的通用特征、方法和属性
  2. 抽象类应用场景:只知道子类应该包含什么方法,但不知道这些方法的具体实现。
  3. 抽象方法:抽象类可以包含抽象方法,这些方法只有声明而没有具体的实现(不能包含方法体)派生类必须实现这些抽象方法才能被实例化。抽象方法用于定义子类中必须实现的行为。
  4. private/final/static修饰的父类方法不能被重写,因此不能修饰父类abstract方法。
    分析:private方法不能被子类访问,而抽象方法必须在子类中具体实现,因此不能用private; final修饰的方法可以被子类调用但无法被子类重写,子类无法具体实现;static方法是类级别的方法,不能被重写
// 抽象类:图形
abstract class Shape {
    // 抽象方法:计算图形的面积
    public abstract double calculateArea();
}

// 圆形类:继承自图形类
class Circle extends Shape {
    private double radius;

    public Circle(double radius) {
        this.radius = radius;
    }

    // 实现抽象方法:计算圆形的面积
    @Override
    public double calculateArea() {
        return Math.PI * radius * radius;
    }
}

// 矩形类:继承自图形类
class Rectangle extends Shape {
    private double width;
    private double height;

    public Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    // 实现抽象方法:计算矩形的面积
    @Override
    public double calculateArea() {
        return width * height;
    }
}

// 测试类
public class Main {
    public static void main(String[] args) {
        Circle circle = new Circle(5.0);
        System.out.println("圆形的面积:" + circle.calculateArea());

        Rectangle rectangle = new Rectangle(4.0, 6.0);
        System.out.println("矩形的面积:" + rectangle.calculateArea());
    }
}

你可能感兴趣的:(java,java,开发语言)