📅  最后修改于: 2023-12-03 14:42:59.016000             🧑  作者: Mango
在Java中,继承是面向对象编程的重要特性之一。继承允许我们定义一个新的类,该类继承了另一个类的特性,包括数据成员和方法。在本文中,我们将介绍继承和构造函数的相关知识点。
在Java中,我们使用关键字 extends
来创建一个类的子类,即继承自另一个类。子类将继承父类的所有方法和属性,并可以通过方法覆盖来更新或修改它们的行为。让我们看一下下面的代码示例:
class Person {
String name;
public void sayHello() {
System.out.println("Hello, my name is " + name);
}
}
class Student extends Person {
public void sayHello() {
System.out.println("Hello, my name is " + name + " and I am a student");
}
}
在上面的代码中,Student
类继承了 Person
类。 这意味着 Student
类将具有 name
字段和 sayHello()
方法,因为它们从 Person
类中继承而来。 然而,我们还覆盖了 sayHello()
方法并在其中添加了一些自己的行为。
在Java中,类成员可以有不同的访问修饰符。通常有以下三种修饰符:
public
:可以从任何地方访问该成员。protected
:仅限于该成员所在的类及其子类访问。private
:仅限于该成员所在的类内部访问。注意,如果不指定访问修饰符,则默认为 package-private
,意味着只有在同一包内的其他类可以访问该成员。
在Java中,您可以使用 super
关键字调用父类的构造函数或方法。这在您需要初始化父类的字段或调用父类的方法时很有用。以下是一个例子:
class Person {
String name;
public Person(String name) {
this.name = name;
}
}
class Student extends Person {
int grade;
public Student(String name, int grade) {
super(name);
this.grade = grade;
}
}
在上面的代码中,Student
类继承了 Person
类。我们使用 super(name)
调用了 Person
类的构造函数,并传递了 name
参数来初始化 name
字段。
在Java中,构造函数是一种特殊的方法,用于创建和初始化对象。构造函数的名称必须与类名相同,并且没有返回类型。在创建一个新对象时,Java会自动调用适当的构造函数,以初始化新对象的字段。
让我们看一下下面的代码示例:
class Person {
String name;
public Person(String name) {
this.name = name;
}
public void sayHello() {
System.out.println("Hello, my name is " + name);
}
}
在上面的代码中,Person
类有一个参数化构造函数,用于初始化 name
字段。在调用这个构造函数时,我们必须传递一个 name
参数。
如果您没有明确定义任何构造函数,则Java将为您提供一个默认构造函数。默认构造函数没有参数,且不执行任何操作。如果您在编写类时没有定义构造函数,则可以使用默认构造函数来初始化对象。
Java中的方法重载允许您在同一个类中定义具有相同名称但具有不同参数类型或数量的多个方法。方法重载使您可以使用相同的名称来执行类似但不完全相同的操作。
以下是一个例子:
class Calculator {
public int add(int x, int y) {
return x + y;
}
public double add(double x, double y) {
return x + y;
}
}
在上面的代码中,Calculator
类有两个名称相同但参数类型不同的 add()
方法。这使得我们可以执行整数或浮点数的加法操作,而无需改变方法名称。
继承和构造函数是Java中面向对象编程的两个基本特性,也是Java程序员必须掌握的重要概念。在本文中,我们介绍了继承的基础知识、访问修饰符、super
关键字以及构造函数和方法重载的概念。掌握这些知识将有助于您更好地理解和编写Java程序。