Java程序 使用构造函数分配和初始化超类成员

Java程序 使用构造函数分配和初始化超类成员

在Java中,对象的构造函数是一种特殊类型的方法,用于创建和初始化新的对象。构造函数也可以用于初始化父类的成员变量。本文将介绍如何使用Java构造函数分配和初始化超类成员。

父类和子类

在Java中,可以使用继承来创建一个新的类。新的类被称为子类,而原始类被称为父类。子类可以继承父类的成员变量和方法,并且可以重写父类的方法。让我们看看一个简单的例子,其中子类继承了父类的成员变量和方法。

class Person {
  protected String name;
  protected int age;

  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

  public void printPerson() {
    System.out.println("Name: " + name );
    System.out.println("Age: " + age );
  }
}

class Student extends Person {
  private int studentId;

  public Student(String name, int age, int studentId) {
    super(name, age);
    this.studentId = studentId;
  }

  public void printStudent() {
    System.out.println("Student ID: " + studentId );
  }
}

public class Main {
  public static void main(String[] args) {
    Student student = new Student("John", 20, 12345);
    student.printPerson();
    student.printStudent();
  }
}

在上面的代码中,我们定义了一个Person类,它具有name和age成员变量和printPerson()方法。我们还定义了一个Student类,它继承了Person类,并具有studentId成员变量和printStudent()方法。当我们创建一个新的Student对象时,它会自动继承Person类的成员变量并将它们初始化。

使用构造函数初始化父类成员变量

当一个子类继承一个父类时,子类会自动继承父类构造函数。子类的构造函数可以使用super关键字调用父类构造函数,并且还可以传递参数给父类构造函数。这使得我们可以使用构造函数初始化父类成员变量。让我们看看一个例子。

class Parent {
  protected int parentVar;

  public Parent(int parentVar) {
    this.parentVar = parentVar;
  }
}

class Child extends Parent {
  private int childVar;

  public Child(int parentVar, int childVar) {
    super(parentVar);
    this.childVar = childVar;
  }

  public void printValues() {
    System.out.println("Parent variable: " + parentVar );
    System.out.println("Child variable: " + childVar );
  }
}

public class Main {
  public static void main(String[] args) {
    Child child = new Child(10, 20);
    child.printValues();
  }
}

在上面的代码中,我们定义了一个Parent类,并通过构造函数初始化了parentVar成员变量。我们还定义了一个Child类,它继承了Parent类,并通过构造函数初始化了parentVar和childVar成员变量。在构造函数中,我们使用super关键字调用父类构造函数,以便初始化父类成员变量。

结论

通过使用Java构造函数,我们可以轻松地分配和初始化父类成员变量。本文提供了一个简单的代码示例,用于说明如何使用构造函数初始化父类成员变量。在使用继承创建更复杂的Java程序时,这可以使代码更容易阅读和维护。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程