目次
2 応用: 書き換え後、サブクラス オブジェクトが作成されるときに、子親クラス内の同じ名前と同じパラメータを持つメソッドが子クラス オブジェクトを通じて呼び出される場合、実際に実行されるのは、子クラスが親クラスのメソッドをオーバーライドすることです。
」を省略することに慣れています。特殊なケース:同じ名前のプロパティがサブクラスと親クラスで定義されている場合、親クラスで宣言されたプロパティを子クラスで呼び出したい場合は、「super.property」メソッドを明示的に使用して、プロパティが宣言されていることを示す必要があります。サブクラスが親クラスのメソッドをオーバーライドし、オーバーライドされた親クラスのメソッドをサブクラスのメソッドで呼び出したい場合は、「super.method」を明示的に使用する必要があります。メソッド。親クラスでオーバーライドされているメソッドが呼び出されていることを示します。
ホームページ Java &#&チュートリアル Java の継承: 概念と使用法

Java の継承: 概念と使用法

Apr 22, 2023 pm 04:19 PM
java

    #継承の概念

    継承とは、サブクラスが親クラスの特性と動作を継承することを意味し、サブクラス オブジェクト (インスタンス) はインスタンス ドメインと親クラスのインスタンス ドメイン メソッド、またはサブクラスは親クラスからメソッドを継承するため、サブクラスは親クラスと同じ動作をします。

    継承により、新しいクラスを迅速に作成し、コードの再利用を実現し、プログラムの保守性を向上させ、新しいクラスの作成にかかる時間を大幅に節約し、開発効率と品質を向上させることができます。

    継承の利点:

    • コードの重複の削減

    • コードの再利用性の向上

    • 関数の拡張を容易にする

    • ##✅継承形式:
    クラス A は B を拡張{}

    A: サブクラス、派生クラス、サブクラス、B: 親クラス、スーパークラス、基本クラス、スーパークラス

    は以下を反映します: サブクラス A が親クラス B を継承すると、サブクラス A は親クラス B で宣言されたすべてのプロパティを取得します。 属性とメソッド、特に、でプライベートとして宣言された属性またはメソッドサブクラスが親クラスを継承した後も、親クラスのプライベート構造を取得したものとみなされます。カプセル化の影響があるだけで、サブクラスは親クラスを直接呼び出すことはできません。クラスの構造は次のとおりです。サブクラスは親クラスを継承した後、関数の拡張を実現するために独自の固有の属性やメソッドを宣言することもできます。親クラスは複数のサブクラスを持つことができます Java におけるクラスの単一継承: クラスは親クラスを 1 つだけ持つことができます サブクラスは相対的な概念です サブクラスが直接継承する親クラスは、直接親と呼ばれます クラス、親クラス間接的に継承されるものは、間接親クラスと呼ばれます。子クラスが親クラスを継承した後、直接の親クラスとすべての間接親クラスで宣言された属性とメソッドを取得します。宣言 それがクラスの親クラスである場合、このクラスは java.lang.Object クラスを継承します。Object クラスは、すべての Java クラスのルート親クラスです。

    継承における注意点:

    1. サブクラスは親クラスを選択的に継承できません;

    2. Java は多重継承をサポートしていませんが、クラスは複数のインターフェイスを実装できるため、単一継承の欠点は克服できます;

    3. 構築メソッドはサブクラスに継承されませんが、親クラスのコンストラクタをサブクラスから呼び出すことができます。

    class teacher{             //声明一个teacher类为父类
    	String name;      	   //定义父类的成员变量name、age   
    	int age;
    	void show(){           //定义父类成员方法,将成员变量输出
    		System.out.println(name); 	  
    		System.out.println(age); 
    	}
    }
    class Student extends teacher {     //声明一个Student类为子类并继承父类
    }
    public class myfirst {
    	public static void main(String[] args) {
    	System.out.println("学生");
    	Student student=new Student();     //声明一个Student类的实例对象student
    	student.name="Tom";                //子类调用父类的成员变量name并赋值
    	student.age=19;                    //子类调用父类的成员变量age并赋值
    	student.show();                    //子类调用父类的成员方法show
    	}
    }
    ログイン後にコピー

    メソッドの書き換え

    実際のアプリケーションでは、作成する子クラスと親クラスの機能が異なるため、このメソッドを書き換えるか非表示にする必要があります。親クラスの。

    1 書き換え: サブクラスは親クラスを継承した後、親クラス内の同じ名前とパラメーターを持つメソッドを上書きできます。

    2 応用: 書き換え後、サブクラス オブジェクトが作成されるときに、子親クラス内の同じ名前と同じパラメータを持つメソッドが子クラス オブジェクトを通じて呼び出される場合、実際に実行されるのは、子クラスが親クラスのメソッドをオーバーライドすることです。

    3 オーバーライド規定:

    メソッド ステートメント:

    Permission修飾子の戻り値の型 メソッド名 (仮パラメータリスト)

    サブクラス内のメソッドはオーバーライドされたメソッドと呼ばれ、メソッドは親クラスのメソッドはオーバーライドされたメソッドと呼ばれます 記述されたメソッド、サブクラスによってオーバーライドされたメソッドのメソッド名および仮引数リストは、親クラスのオーバーライドされたメソッドのメソッド名および仮引数リスト、および権限と同じですサブクラスによってオーバーライドされたメソッドの修飾子は、親クラスのオーバーライドされたメソッドの修飾子以上です。メソッド権限修飾子の特殊なケース: サブクラスは、親クラスでプライベート権限として宣言されたメソッドをオーバーライドできません。

    戻り値についてtype:

    親クラスのオーバーライドされたメソッドの戻り値の型が void の場合、サブクラスによってオーバーライドされたメソッドの戻り値の型は void のみになります。親クラスのオーバーライドされたメソッドの戻り値の型クラスが型 A の場合、サブクラスによってオーバーライドされるメソッドの戻り値の型は、クラス A またはクラス A のサブクラスになります。

    親クラスのオーバーライドされたメソッドの戻り値の型は、基本データ型です (例: double) の場合、サブクラスによってオーバーライドされるメソッドの戻り値の型は同じである必要があります

    サブクラスと親クラスに同じ名前のパラメーターを持つメソッドは、メソッドをオーバーライドする前に非静的として宣言する必要があります。

    例:

    class A{
    	public void sayHello() {                      //输出英文欢迎
    		System.out.println("Hello,Welcome to Java!!!");
    	}
    	public void sayBye() {
    		System.out.println("GoodBye,everyone");
    	}
    }
    class B extends A {           
        public void sayHello() {                      //输出中文欢迎  
        	System.out.println("大家好,欢迎学习Java!!!");
        }
    }
    public class myfirst {
    	public static void main(String[] args) {
    	B b=new B();                                //创建子类B的一个实例对象,使用默认构造方法
    	b.sayHello();                               //调用子类中重写的方法
    	b.sayBye();                                 //调用父类中的方法
    	}
    }
    ログイン後にコピー

    super キーワード

    super の使用は、親クラスの super として理解されます。

    スーパーの使用は、サブクラスのメソッドまたはコンストラクターで使用できます。 「super.property」または「super.method」を使用すると、親クラスで宣言されたプロパティまたはメソッドを明示的に呼び出すことができます。ただし、通常は「super.

    」を省略することに慣れています。特殊なケース:同じ名前のプロパティがサブクラスと親クラスで定義されている場合、親クラスで宣言されたプロパティを子クラスで呼び出したい場合は、「super.property」メソッドを明示的に使用して、プロパティが宣言されていることを示す必要があります。サブクラスが親クラスのメソッドをオーバーライドし、オーバーライドされた親クラスのメソッドをサブクラスのメソッドで呼び出したい場合は、「super.method」を明示的に使用する必要があります。メソッド。親クラスでオーバーライドされているメソッドが呼び出されていることを示します。

    super はコンストラクターを呼び出します。

    サブクラスのコンストラクターで "super (仮パラメーター リスト)" を明示的に使用できます。親クラスで宣言された指定のコンストラクタを呼び出す方法です。「super (形式パラメータリスト)」の使用は、サブクラスのコンストラクタの最初の行で宣言する必要があります。クラスのコンストラクタでは、「this (形式パラメータリスト)」を対象とします。 )"。パラメータリスト)" または super (仮パラメータリスト)" は 2 つのうちの 1 つだけを選択でき、同時に指定することはできません。コンストラクタの最初の行には、"this (仮パラメータリスト)" の明示的な宣言はありません。 )" または "super (仮パラメーター リスト)" "、親クラスのコンストラクターを呼び出します

    package first;
    class A{
        public String name="张飞";         //添加成员变量
    	public void say() {                //添加成员方法say
    		System.out.println("我是父类A成员方法say");
    	}
    }
    class B extends A{
        public String name="关羽";         //与父类中同名的字段,隐藏父类
    	public void say(){                 //重写方法say
    		super.say();                   //使用super关键字调用父类中的方法
    		System.out.println("我是子类B成员方法say");
            System.out.println("父类的name名字:"+super.name); //使用super关键字访问父类中的变量
    	}
    }
    public class myfirst {
    	public static void main(String[] args) {
    	  B b=new B();                     //创建子类的一个实例对象
    	  b.say();                         //调用子类中重写的方法
    	  System.out.println("子类的name名字:"+b.name);   //调用子类中的name
    	}
    }
    ログイン後にコピー

    以上がJava の継承: 概念と使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    Javaの平方根 Javaの平方根 Aug 30, 2024 pm 04:26 PM

    Java の平方根のガイド。ここでは、Java で平方根がどのように機能するかを、例とそのコード実装をそれぞれ示して説明します。

    Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

    Java における完全数のガイド。ここでは、定義、Java で完全数を確認する方法、コード実装の例について説明します。

    Javaのアームストロング数 Javaのアームストロング数 Aug 30, 2024 pm 04:26 PM

    Java のアームストロング番号に関するガイド。ここでは、Java でのアームストロング数の概要とコードの一部について説明します。

    Java の乱数ジェネレーター Java の乱数ジェネレーター Aug 30, 2024 pm 04:27 PM

    Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

    ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

    Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

    Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

    Java のスミス番号のガイド。ここでは定義、Java でスミス番号を確認する方法について説明します。コード実装の例。

    Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

    この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

    Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

    Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

    See all articles