46

Kotlinを使用して Android アプリの実験を始めたばかりです。次のようにApplicationクラスを継承したかっただけです。

class SomeApp : Application {

}

しかし、コンパイラは警告を発します:

ここに画像の説明を入力

そして提案はそれを次のように変更します:

class SomeApp : Application() {
    override fun onCreate() {
        super.onCreate()
    }
}

docs でプライマリ コンストラクターとセカンダリ コンストラクターについて読みました。スーパークラスにプライマリコンストラクタがある場合、ここに記述する必要がありますか? 同様に Application クラスには独自のコンストラクターがあります

public Application() {
    super(null);
}

次に、派生用のプライマリコンストラクターが必要ですか? またはJavaのようなことはできませんか:

class SomeApp : Application {
   constructor SomeApp(){
      super();
    }
}

または、このエラーは何か他のことを示唆していますか? 誰か詳しく説明してくれませんか? 私は言語に非常に慣れていないので、これは私には奇妙に見えます。

編集:Javaでは、次のことができます:class SomeApp extends Application{ }

暗黙のコンストラクターがあるので、書く必要はありません:class SomeApp extends Application{ public Application(){ super(); } }しかし、kotlin では、次のように空のコンストラクターを定義する必要があります class SomeApp:Application(){ } か?

4

2 に答える 2