0

私はネットを調べてコードの例を見つけ、それらを理解しようとしています。これでは、スーパーが何もしていないのは正しいと思います。日食では、それは Objects クラスから来ていると私に言います。Javaにはチュートリアルがあります。

オブジェクトを「ArrayAdapter」から「ListAdapter」に作成することと、Android 4 のオープニング テンプレートで「ListFragment」を使用することとの関係を学ぼうとしています。 「Master Detail」選択用のページにリストを追加するこの方法を学習するのに適しています。

リンクJava チュートリアル:: Android ドキュメント:: ArrayAdapter チュートリアル

船に乗り遅れただけだと思います。

public class Weather {
public int icon;
public String title;

public Weather(){
    super();
}

public Weather(int icon, String title) {
    super();
    this.icon = icon;
    this.title = title;
}
}
4

2 に答える 2

6

コンストラクターで呼び出すsuper()必要はありません。そうしないと、コンパイラーがこの命令を挿入するからです。

そう

public Foo() {
    // some instructions
}

public Foo() {
    super();
    // some instructions
}

は厳密に同等です。コンストラクターが最初に行う必要があるのは、スーパークラス コンストラクターの 1 つを呼び出すことです。忘れた場合は、コンパイラがsuper()呼び出しを挿入して自動的に実行します。スーパークラスに目に見える引数のないコンストラクターがない場合は、コンパイル エラーが発生します。

引数super(someArguments)のないコンストラクターではない基本クラスのコンストラクターを呼び出したい (または必要とする) 場合、呼び出しが必要になることがよくあります。

于 2013-03-07T23:55:52.027 に答える
0

super() が何もしていないというのは正しくありません。スーパークラスの引数なしのコンストラクターを呼び出します。クラスが java.lang.Object から直接継承されている場合でも、Object のコンストラクターが呼び出されますが、何もしません。もちろん、JVM オプティマイザは、このような無駄な呼び出しをすばやく排除します。

于 2013-03-07T23:58:19.350 に答える