Java继承:子类拥有父类对象所有的属性和方法

引言

在Java中,继承是面向对象编程中的重要概念之一。通过继承,子类可以获得父类的属性和方法,从而减少代码的冗余并增加代码的可复用性。本文将教会刚入行的小白如何实现Java继承,包括整个流程和每个步骤需要做的事情。下面是详细的流程图:

flowchart TD
    A[创建父类] --> B[创建子类]
    B --> C[继承父类]

创建父类

首先,我们需要创建一个父类,这个父类将包含属性和方法。在这个示例中,我们创建一个名为Person的父类,它包含nameage属性以及eat()方法。

public class Person {
    protected String name;
    protected int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public void eat() {
        System.out.println(name + " is eating.");
    }
}

在上面的代码中,我们使用了protected修饰符来定义nameage属性,以便子类可以访问这些属性。

创建子类

接下来,我们需要创建一个子类,并实现继承父类的属性和方法。在这个示例中,我们创建一个名为Student的子类,它继承自Person类。

public class Student extends Person {
    private String school;
    
    public Student(String name, int age, String school) {
        super(name, age);
        this.school = school;
    }
    
    public void study() {
        System.out.println(name + " is studying at " + school);
    }
}

在上面的代码中,我们使用extends关键字来实现继承。子类Student拥有父类Person的属性和方法。

使用继承

现在我们可以使用继承来创建子类对象,并访问父类的属性和方法。

public class Main {
    public static void main(String[] args) {
        // 创建一个Person对象
        Person person = new Person("John", 25);
        
        // 创建一个Student对象
        Student student = new Student("Tom", 18, "ABC School");
        
        // 访问父类属性和方法
        System.out.println(person.name);  // 输出:John
        System.out.println(person.age);  // 输出:25
        person.eat();  // 输出:John is eating.
        
        // 访问子类属性和方法
        System.out.println(student.name);  // 输出:Tom
        System.out.println(student.age);  // 输出:18
        System.out.println(student.school);  // 输出:ABC School
        student.eat();  // 输出:Tom is eating.
        student.study();  // 输出:Tom is studying at ABC School
    }
}

上面的代码创建了一个Person对象和一个Student对象,并通过对象访问了父类和子类的属性和方法。

类图

下面是使用Mermaid语法绘制的类图,展示了父类和子类之间的继承关系:

classDiagram
    class Person {
        -name: String
        -age: int
        +Person(name: String, age: int)
        +eat(): void
    }
    
    class Student {
        -school: String
        +Student(name: String, age: int, school: String)
        +study(): void
    }
    
    Person <|-- Student

在上面的类图中,Person类是父类,Student类是子类。子类Student继承了父类Person的属性和方法。

结束语

通过继承,子类可以拥有父类对象的所有属性和方法。在本文中,我们通过创建父类和子类的示例,展示了如何实现Java继承。希望这篇文章对刚入行的小白理解Java继承有所帮助。