Java 中的 super 关键字2025年3月23日 | 阅读 7 分钟 Java 中的 super 关键字是一个引用变量,用于引用直接父类对象。 每当你创建子类实例时,父类的实例都会被隐式创建,并通过 super 引用变量进行引用。 super 关键字的优点以下是使用 Java 中的 super 关键字的优点:
Java super 关键字的用法
1) super 用于引用直接父类的实例变量。我们可以使用 super 关键字来访问父类的数据成员或字段。如果父类和子类具有相同的字段,则使用它。 文件名: Main.java 示例编译并运行输出 black white 在上面的示例中,Animal 和 Dog 类都有一个共同的属性 color。如果我们打印 color 属性,默认情况下它会打印当前类的颜色。要访问父类属性,我们需要使用 super 关键字。 2) super 可用于调用父类方法super 关键字也可用于调用父类的方法。如果子类包含与父类相同的方法,则应使用它。换句话说,当一个方法被覆盖时,它就会被使用。 文件名: Main.java 示例编译并运行输出 eating... barking... 在上面的示例中,Animal 和 Dog 类都有 eat() 方法。如果我们在 Dog 类中调用 eat() 方法,默认情况下它会调用 Dog 类的 eat() 方法,因为局部方法具有优先权。 要调用父类方法,我们需要使用 super 关键字。 3) super 用于调用父类的构造函数super 关键字也可用于调用父类的构造函数。让我们看一个简单的例子 文件名: Main.java 示例编译并运行输出 animal is created dog is created 注意:如果构造函数中没有 super() 或 this(),编译器会自动在每个类构造函数中添加 super()。正如我们所知,如果不存在构造函数,编译器会自动提供默认构造函数。但是,它还将 super() 作为第一个语句添加。 super 关键字的另一个示例是编译器隐式提供 super()。 文件名: Main.java 示例编译并运行输出 animal is created dog is created Super 关键字的实际应用让我们看看 super 关键字的实际应用。这里,Emp 类继承了 Person 类,因此 Person 的所有属性都将默认被 Emp 继承。为了初始化所有属性,我们从子类中使用父类构造函数。通过这种方式,我们正在重用父类构造函数。 文件名: Main.java 示例编译并运行输出 1 ankit 45000 Super 关键字的特点
当我们创建一个子类对象时,Java 会自动调用父类的构造函数。如果我们想显式调用父类构造函数,我们可以使用 super()。这通常是为了确保在子类开始初始化之前,父类已正确初始化。
如果父类中的某个方法在子类中被覆盖,子类仍然可以使用 super.methodName() 调用父类版本的该方法。当子类想要扩展或为方法添加额外功能,但仍需要使用父类的原始功能时,这很有用。
如果父类和子类都有同名的变量(字段),super 允许子类访问父类版本的字段。这有助于避免两个变量之间的混淆,并清楚地表明我们引用的是父类中的变量。
当使用 super() 调用父类构造函数时,它必须是子类构造函数中的第一条语句。它确保在子类开始自己的初始化之前,父类已得到初始化。
super 关键字不能在静态方法或静态变量中使用。这是因为静态方法和变量属于类本身,而不是特定的对象。由于 super 指的是对象的父类,因此不允许在静态上下文中使用它。
如果父类的方法在子类中没有被覆盖,我们就不需要使用 super 来调用父类的方法。当调用方法时,子类会自动调用父类的方法。 Super 关键字选择题1. 下列哪项是使用 super 关键字调用超类构造函数的正确方法?
答案:A) 解释: super() 调用用于调用超类构造函数。 2. 何时应使用 super 关键字调用超类方法?
答案:A) 解释: super 关键字用于在子类中覆盖超类方法时调用它,以扩展或修改其行为。 3. 在哪种情况下使用 super 关键字来访问超类变量?
答案:A) 解释: super 用于访问被同名子类变量遮蔽的超类变量。 4. 子类构造函数中 super 关键字的主要目的是什么?
答案:A) 解释: 子类构造函数中 super 关键字的主要目的是确保在执行子类构造函数之前,超类得到正确初始化。 5. 关于 super 关键字,下列哪项陈述是正确的?
答案:C) 解释: super 关键字用于引用直接父类对象,从而允许访问其方法和变量。 下一主题Java 中的实例初始化块 |
我们请求您订阅我们的新闻通讯以获取最新更新。