Java继承:子类拥有父类对象所有的属性和方法
引言
在Java中,继承是面向对象编程中的重要概念之一。通过继承,子类可以获得父类的属性和方法,从而减少代码的冗余并增加代码的可复用性。本文将教会刚入行的小白如何实现Java继承,包括整个流程和每个步骤需要做的事情。下面是详细的流程图:
flowchart TD
A[创建父类] --> B[创建子类]
B --> C[继承父类]
创建父类
首先,我们需要创建一个父类,这个父类将包含属性和方法。在这个示例中,我们创建一个名为Person
的父类,它包含name
和age
属性以及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
修饰符来定义name
和age
属性,以便子类可以访问这些属性。
创建子类
接下来,我们需要创建一个子类,并实现继承父类的属性和方法。在这个示例中,我们创建一个名为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继承有所帮助。