クラスのコンストラクター メソッドは特別なメソッドです。メソッド名 クラス名と一致している必要があります。この構造は戻り値を持つことはできず、void を使用せず、直接呼び出すことはできません。クラス オブジェクトがインスタンス化されるときに自動的に呼び出され、新規のときに呼び出すことができます。一般コンストラクターは、クラス オブジェクトをインスタンス化する際の初期化に使用されます。クラスにコンストラクターが記述されていない場合、システムはコンパイル中にこのクラスに引数のないコンストラクターを自動的に追加します。宣言側のクラスがコンストラクターを記述している場合、システムはパラメーターのないコンストラクターを追加しません。コンストラクターを記述した後、パラメーターのないコンストラクターを記述することをお勧めします。
端的に言えば、パラメータなしの構築方法です。概念を理解していない場合は、例を見て明らかになるでしょう。クラス A にコンストラクター A() を作成し、文を出力しますクラス A
public class A { }ログイン後にコピー
コンストラクターはクラス名と同じである必要があります新しいテスト クラスを作成し、クラス A のオブジェクトをクラスに追加します
public class A { public A(){ System.out.println("构造方法A()"); }}ログイン後にコピー
main メソッドを実行して試してくださいpublic class Test { public static void main(String[] args) { A a = new A(); }}ログイン後にコピー
#構築メソッドは、新しいオブジェクトで自動的に使用されるメソッドと同等です
#パラメータ付きのコンストラクタはパラメータ付きのコンストラクタです##パラメータを使用した構築
public class A { public A() { } public A(String a, String b) { System.out.println(a + b); }}ログイン後にコピー
テスト クラスに新しいパラメータを渡します。オブジェクトをオブジェクト化するときのパラメータに
public class Test { public static void main(String[] args) { A a = new A("aaa", "bbb"); }}
main メソッドを実行する
がありますnoconstructor の場合、クラス内にパラメータのない構造が隠されています。ただし、パラメーター化されたコンストラクターを作成すると、非表示のパラメーターのないコンストラクターは表示されなくなります。その場合、新しいオブジェクトは将来的にのみパラメータを取ることができます。したがって、パラメーター化されたコンストラクターを構築する場合は、パラメーターなしのコンストラクターを作成してそこに配置する必要があります。
Note
クラスの継承Java 言語では、クラス クラスには 1 つの継承と複数の実装インターフェイスがあります。インターフェイスインターフェイスは多重継承です。
#なぜ継承する必要があるのでしょうか?サブクラスは親クラスに基づいて新しい機能を追加したいためです。
サブクラスは親クラスのメソッドと属性を継承します。
次は分析の例です:親クラスは人間で、サブクラスは経験豊富なドライバーです。
人間の特徴には、2 本の手、2 つの目、2 つの足、食べたり飲んだりする能力が含まれます。
古いドライバーは人間の特性を受け継ぎ、運転できるという追加機能を備えています。
コードは次のとおりです。
これは、次の属性と機能を持つ人間です。
public class Ren { public final String shou = "两只手"; public final String jiao = "两只脚"; public final String yan = "两只眼"; public void chi() { System.out.println("会吃"); } public void he() { System.out.println("会喝"); }}
これは人間から受け継いだベテランクラスです。また、public class Siji extends Ren { public void kai() { System.out.println("会开车"); }}ログイン後にコピー
Test を実行できる追加関数があります。古いドライバー オブジェクトの出力属性を作成し、メソッドを呼び出します。public class Test { public static void main(String[] args) { Siji b = new Siji(); System.out.println(b.jiao); System.out.println(b.shou); System.out.println(b.yan); b.chi(); b.he(); b.kai(); }}ログイン後にコピー
メソッドの書き換え、オーバーロード
オーバーライドの書き換え: メソッド名、戻り値の型、仮パラメーターはすべて同じです。この場合、それは継承関係に違いありません。
オーバーロード: 同じメソッド名、戻り値の型、仮パラメータの数、および異なる型を持つメソッドは、必ずしも継承関係である必要はありません。コンストラクター メソッドのオーバーロードなど、同じクラス内に存在することもできますRewriteたとえば、人は食べたり飲んだりできますが、経験豊富なドライバーは食べるという機能が気に入らず、それをクソを食べるように変更したいと考えています。サブクラスは親クラスのメソッドに満足できず、変更したいため、このようにしてサブクラスが親クラスのメソッドをオーバーライドします。
コードは次のとおりです:メソッド名は同じである必要があります古いドライバーは人間の chi() メソッドを書き換えます
public class Siji extends Ren { public void kai() { System.out.println("会开车"); } public void chi() { System.out.println("会吃屎"); }}
実行中のテスト クラスを書き直します
2 つのメソッドは、戻り値の型、パラメータの型、およびパラメータの数のいずれか 1 つだけが異なります。ただし、メソッド名が同じであるため、2 つのメソッドはオーバーロードされます。オーバーロード
パラメータを使用した構築とパラメータを使用しない構築はメソッドのオーバーロードです。クラスには同じ名前のメソッドが 2 つありますが、戻り値の型、パラメータの型、パラメータの数が異なります。
以上がJAVA で継承、コンストラクター メソッド、オーバーライドおよびオーバーロード メソッドを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。