JAVA で継承、コンストラクター メソッド、オーバーライドおよびオーバーロード メソッドを使用するにはどうすればよいですか?

WBOY
リリース: 2023-04-23 14:58:07
転載
1394 人が閲覧しました

JAVA で継承、コンストラクター メソッド、オーバーライドおよびオーバーロード メソッドを使用するにはどうすればよいですか?


#コンストラクター メソッド

クラスのコンストラクター メソッドは特別なメソッドです。メソッド名 クラス名と一致している必要があります。この構造は戻り値を持つことはできず、void を使用せず、直接呼び出すことはできません。クラス オブジェクトがインスタンス化されるときに自動的に呼び出され、新規のときに呼び出すことができます。一般コンストラクターは、クラス オブジェクトをインスタンス化する際の初期化に使用されます。クラスにコンストラクターが記述されていない場合、システムはコンパイル中にこのクラスに引数のないコンストラクターを自動的に追加します。宣言側のクラスがコンストラクターを記述している場合、システムはパラメーターのないコンストラクターを追加しません。

コンストラクターを記述した後、パラメーターのないコンストラクターを記述することをお勧めします。

パラメータなしの構築

端的に言えば、パラメータなしの構築方法です。概念を理解していない場合は、例を見て明らかになるでしょう。

クラス A

public class A {
    }
ログイン後にコピー

クラス A にコンストラクター A() を作成し、文を出力します
コンストラクターはクラス名と同じである必要があります


public class A {
    public A(){
        System.out.println("构造方法A()");
    }}
ログイン後にコピー

新しいテスト クラスを作成し、クラス A のオブジェクトをクラスに追加します

public class Test {
    public static void main(String[] args) {
        A a = new A();
    }}
ログイン後にコピー

main メソッドを実行して試してください

JAVA で継承、コンストラクター メソッド、オーバーライドおよびオーバーロード メソッドを使用するにはどうすればよいですか?

#構築メソッドは、新しいオブジェクトで自動的に使用されるメソッドと同等です

##パラメータを使用した構築

#パラメータ付きのコンストラクタはパラメータ付きのコンストラクタです

クラス A でパラメータ付きのコンストラクタを宣言し、2 つの String 型パラメータ a と b

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 メソッドを実行する


NoteJAVA で継承、コンストラクター メソッド、オーバーライドおよびオーバーロード メソッドを使用するにはどうすればよいですか?

がありますnoconstructor の場合、クラス内にパラメータのない構造が隠されています。ただし、パラメーター化されたコンストラクターを作成すると、非表示のパラメーターのないコンストラクターは表示されなくなります。その場合、新しいオブジェクトは将来的にのみパラメータを取ることができます。したがって、パラメーター化されたコンストラクターを構築する場合は、パラメーターなしのコンストラクターを作成してそこに配置する必要があります。

クラスの継承

Java 言語では、クラス クラスには 1 つの継承と複数の実装インターフェイスがあります。インターフェイスインターフェイスは多重継承です。

#なぜ継承する必要があるのでしょうか?サブクラスは親クラスに基づいて新しい機能を追加したいためです。

サブクラスは親クラスのメソッドと属性を継承します。 JAVA で継承、コンストラクター メソッド、オーバーライドおよびオーバーロード メソッドを使用するにはどうすればよいですか?

次は分析の例です:

親クラスは人間で、サブクラスは経験豊富なドライバーです。
人間の特徴には、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();
    }}
ログイン後にコピー

メソッドの書き換え、オーバーロード

JAVA で継承、コンストラクター メソッド、オーバーライドおよびオーバーロード メソッドを使用するにはどうすればよいですか?オーバーライドの書き換え: メソッド名、戻り値の型、仮パラメーターはすべて同じです。この場合、それは継承関係に違いありません。

オーバーロード: 同じメソッド名、戻り値の型、仮パラメータの数、および異なる型を持つメソッドは、必ずしも継承関係である必要はありません。コンストラクター メソッドのオーバーロードなど、同じクラス内に存在することもできます

Rewrite


サブクラスは親クラスのメソッドに満足できず、変更したいため、このようにしてサブクラスが親クラスのメソッドをオーバーライドします。
たとえば、人は食べたり飲んだりできますが、経験豊富なドライバーは食べるという機能が気に入らず、それをクソを食べるように変更したいと考えています。

コードは次のとおりです:


古いドライバーは人間の chi() メソッドを書き換えます
メソッド名は同じである必要があります

public class Siji extends Ren {
    public void kai() {
        System.out.println("会开车");
    }

    public void chi() {
        System.out.println("会吃屎");
    }}
ログイン後にコピー

実行中のテスト クラスを書き直します

オーバーロード
JAVA で継承、コンストラクター メソッド、オーバーライドおよびオーバーロード メソッドを使用するにはどうすればよいですか?

パラメータを使用した構築とパラメータを使用しない構築はメソッドのオーバーロードです。クラスには同じ名前のメソッドが 2 つありますが、戻り値の型、パラメータの型、パラメータの数が異なります。
2 つのメソッドは、戻り値の型、パラメータの型、およびパラメータの数のいずれか 1 つだけが異なります。ただし、メソッド名が同じであるため、2 つのメソッドはオーバーロードされます。

以上がJAVA で継承、コンストラクター メソッド、オーバーライドおよびオーバーロード メソッドを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート