Javaポリモーフィズムを理解する方法
Java では、ポリモーフィズムは、同じ動作が複数の異なる表現または形式を持つことができる機能です。ポリモーフィズムは、異なるインスタンスを使用して異なる操作を実行する同じインターフェイスです。ポリモーフィズムの利点: 1. 型間の結合関係の排除、2. 置換、3. 拡張性、4. インターフェース、5. 柔軟性、6. 簡素化。
ポリモーフィズムは、カプセル化と継承に続くオブジェクト指向の 3 番目の主要な機能です。
2. ポリモーフィズム実際的な意味理解:
- 現実のものは、学生、学生など、複数の形式を取ることがよくあります。が人々の一種である場合、特定のクラスメート Zhang San は
学生 であると同時に 人物 です。つまり、2 つの形式 があります。オブジェクトの言語は、1 つのものの複数の形式を記述することもできます。 Student クラスが Person クラスを継承する場合、Student オブジェクトは Student と Person の両方になります。
3. ポリモーフィズムは、 - 親クラス参照変数はサブクラス オブジェクトを指すことができます
に反映されます。
4. 前提条件: 子と親のクラス関係が存在する必要があります。
注: 多態性の親クラス参照変数を使用してメソッドを呼び出すと、サブクラスの書き換えられたメソッドが呼び出されます。
#5. ポリモーフィズムの定義と使用形式定義形式:親クラス型変数名=新しいサブクラス型();
6. 理解する:ポリモーフィズムとは、同じ動作が複数の異なる表現や形式を持つ能力です。ポリモーフィズムは同じインターフェイスであり、異なるインスタンスを使用して異なる操作を実行します。
- 拡張性
- インターフェイス
##柔軟性
- ## 簡素化
- #8. ポリモーフィズムが存在するための 3 つの必要条件 ##継承
- ## 書き換え
親クラスの参照は、子クラスのオブジェクトを指します:
- Parent p = new Child();
- #ポリモーフィズムにおけるメンバーの特性
Fu f=new Zi(); System.out.println(f.num);//f是Fu中的值,只能取到父中的值
ログイン後にコピー2. 多態性メンバー メソッド: コンパイル時は左側、実行時は右側を確認します
instanceofkeyword<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>Fu f1=new Zi(); System.out.println(f1.show());//f1的门面类型是Fu,但实际类型是Zi,所以调用的是重写后的方法。</pre><div class="contentsignin">ログイン後にコピー</div></div>
関数: オブジェクトが特定のデータ型に属するかどうかを判断するために使用されます。 注: 戻り値の型はブール型です。
ユースケース:
Fu f1=new Zi(); Fu f2=new Son(); if(f1 instanceof Zi){ System.out.println("f1是Zi的类型"); } else{ System.out.println("f1是Son的类型"); }
ポリモーフィズム 変換は次のとおりです。上向き変換と下向き変換の 2 種類に分けられる 上向き変換: ポリモーフィズム自体が上向き変換のプロセスである
使用形式: 親クラス型変数名 = 新しい子クラス型();
適用可能なシナリオ: サブクラス型に直面する必要がない場合、対応する操作は、スケーラビリティを向上させるか、親クラスの関数を使用することによって完了できます。
下方変換: 上方変換されたサブクラス オブジェクトは、強制型変換の形式を使用して、親クラスの参照型をサブクラスの参照型に変換できます。形式: サブクラス型変数名 = (サブクラス型) 親クラス型変数;- 適用シナリオ: サブクラス独自の機能を使用したい場合。 ポリモーフィックのケース:
- )
package day0524; public class demo04 { public static void main(String[] args) { People p=new Stu(); p.eat(); //调用特有的方法 Stu s=(Stu)p; s.study(); //((Stu) p).study(); } } class People{ public void eat(){ System.out.println("吃饭"); } } class Stu extends People{ @Override public void eat(){ System.out.println("吃水煮肉片"); } public void study(){ System.out.println("好好学习"); } } class Teachers extends People{ @Override public void eat(){ System.out.println("吃樱桃"); } public void teach(){ System.out.println("认真授课"); } }
package day0524; public class demo1 { public static void main(String[] args) { A a=new A(); a.show(); B b=new B(); b.show(); } } class A{ public void show(){ show2(); } public void show2(){ System.out.println("A"); } } class B extends A{ public void show2(){ System.out.println("B"); } } class C extends B{ public void show(){ super.show(); } public void show2(){ System.out.println("C"); } }
関連ビデオ チュートリアルの推奨事項: Java ビデオ チュートリアル
以上がJavaポリモーフィズムを理解する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









