java - 初始化父类(super class)成员的正确方法是什么?

标签 java subclassing super

如果我有一个类,例如一个在构造函数中初始化的 HashMap,就像这样......

public class MySuper{
   HashMap<String,String> foo;

   public MySuper(){
      foo = new HashMap<String,String>();
   }
}

我的印象(这是不正确的)是我只需要在子类中调用 super 并且会发生相同的初始化,但是 Eclipse 对以下语法不满意...

 public class MySub extends MySuper{
      public MySub(){
         super.MySuper()
      }
   }

所以,我很好奇执行此操作的正确方法是什么。我是否必须在 MySuper 中创建一个单独的方法来执行初始化并调用 super ? (我知道这会起作用),但我的印象是有一种方法可以在我正在扩展的类上调用 super 并让它做它通常在其构造函数中做的任何事情。

TIA

最佳答案

子类自动调用父类(super class)的无参数构造函数。

但是如果你想在你的代码中强调它,你可以使用:

 public class MySub extends MySuper{
      public MySub(){
         super();
      }
   }

super() 必须是构造函数主体的第一条语句。

关于java - 初始化父类(super class)成员的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10771092/

相关文章:

javascript - 如何在子类中使用 `super` 调用父类(super class)上的箭头函数

Python,覆盖继承的类方法

java - Proguard - 有什么方法可以忽略外部库中不兼容的(由于 Java 字节码版本)包?

java - Kotlin 中可调整大小的二维数组

java - 子对象和父对象被传递到同一个方法中

iOS 返回不同的子类

javascript - 为什么 [[HomeObject]] 在方法的简写语法上不同?

java - 将HashMap的值设置为标签的文本

java - 将多个文本字段添加到单个焦点监听器

jquery - 子类化 jQuery 对象