Java实体继承另一个实体

导言

在面向对象编程中,继承是一个重要的概念。它允许一个实体(子类)从另一个实体(父类)继承属性和方法。在Java中,实体之间的继承关系是通过使用关键字 extends 来实现的。本文将介绍Java中实体继承另一个实体的概念,并提供相关的代码示例。

实体继承的概念

实体继承是面向对象编程中的一个重要特性。它允许一个实体(子类)从另一个实体(父类)继承属性和方法。子类可以继承父类的所有公共和受保护的成员变量和方法,同时还可以添加自己的成员变量和方法。

通过继承,可以实现代码的重用和扩展。子类可以通过继承父类的属性和方法来减少代码的重复,并且可以通过添加新的属性和方法来扩展父类的功能。

实体继承的语法

在Java中,实体继承是通过使用关键字 extends 来实现的。下面是实体继承的语法示例:

public class SubClass extends SuperClass {
    // 子类的成员变量和方法
}

在上面的代码示例中,SubClass 是子类,SuperClass 是父类。子类通过 extends 关键字继承父类的属性和方法。

实体继承的示例

为了更好地理解实体继承的概念,下面将通过一个示例来演示。

假设我们要建立一个图形的层次结构,其中包括一个基本图形类 Shape 和两个子类 CircleRectangleShape 类包含了图形的共有属性和方法,Circle 类和 Rectangle 类继承了 Shape 类,并且添加了自己的属性和方法。

首先,我们定义基本图形类 Shape

public class Shape {
    protected String color;

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

    public void draw() {
        System.out.println("Drawing a shape with color: " + color);
    }
}

在上面的代码中,Shape 类有一个受保护的成员变量 color 和一个 draw 方法。

接下来,我们定义 Circle 类和 Rectangle 类:

public class Circle extends Shape {
    private double radius;

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

    public double getArea() {
        return Math.PI * radius * radius;
    }
}

public class Rectangle extends Shape {
    private double width;
    private double height;

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

    public double getArea() {
        return width * height;
    }
}

在上面的代码中,Circle 类和 Rectangle 类都通过 extends 关键字继承了 Shape 类。它们分别添加了自己的属性和方法 getArea,用于计算图形的面积。

现在,我们可以使用这些类来创建对象并调用它们的方法:

public class Main {
    public static void main(String[] args) {
        Circle circle = new Circle("red", 5.0);
        circle.draw();
        System.out.println("Area of circle: " + circle.getArea());

        Rectangle rectangle = new Rectangle("blue", 3.0, 4.0);
        rectangle.draw();
        System.out.println("Area of rectangle: " + rectangle.getArea());
    }
}

上面的代码中,我们创建了一个 Circle 对象和一个 Rectangle 对象,并分别调用了它们的 draw 方法和 getArea 方法。

甘特图

下面是一个使用甘特图表示实体继承的示例:

gantt
    dateFormat  YYYY-MM-DD
    title 实体继承甘特图

    section 基本图形类
    Shape类定义           : 2022-01-01, 7