Java では、ポリモーフィズムは、同じ動作が複數(shù)の異なる表現(xiàn)または形式を持つことができる機能です。ポリモーフィズムは、異なるインスタンスを使用して異なる操作を?qū)g行する同じインターフェイスです。ポリモーフィズムの利點: 1. 型間の結(jié)合関係の排除、2. 置換、3. 拡張性、4. インターフェース、5. 柔軟性、6. 簡素化。
ポリモーフィズムは、カプセル化と継承に続くオブジェクト指向の 3 番目の主要な機能です。
2. ポリモーフィズム実際的な意味理解:
- 現(xiàn)実のものは、學(xué)生、學(xué)生など、複數(shù)の形式を取ることがよくあります。が人々の一種である場合、特定のクラスメート Zhang San は
學(xué)生 であると同時に 人物 です。つまり、2 つの形式 があります。オブジェクトの言語は、1 つのものの複數(shù)の形式を記述することもできます。 Student クラスが Person クラスを継承する場合、Student オブジェクトは Student と Person の両方になります。
3. ポリモーフィズムは、 - 親クラス參照変數(shù)はサブクラス オブジェクトを指すことができます
に反映されます。
4. 前提條件: 子と親のクラス関係が存在する必要があります。
注: 多態(tài)性の親クラス參照変數(shù)を使用してメソッドを呼び出すと、サブクラスの書き換えられたメソッドが呼び出されます。
#5. ポリモーフィズムの定義と使用形式定義形式:親クラス型変數(shù)名=新しいサブクラス型();
6. 理解する:ポリモーフィズムとは、同じ動作が複數(shù)の異なる表現(xiàn)や形式を持つ能力です。ポリモーフィズムは同じインターフェイスであり、異なるインスタンスを使用して異なる操作を?qū)g行します。
- 拡張性
- インターフェイス
##柔軟性
- ## 簡素化
- #8. ポリモーフィズムが存在するための 3 つの必要條件 ##継承
- ## 書き換え
親クラスの參照は、子クラスのオブジェクトを指します:
- Parent p = new Child();
- #ポリモーフィズムにおけるメンバーの特性
Fu f=new Zi(); System.out.println(f.num);//f是Fu中的值,只能取到父中的值
2. 多態(tài)性メンバー メソッド: コンパイル時は左側(cè)、実行時は右側(cè)を確認(rèn)します
instanceofkeyword<pre class='brush:php;toolbar:false;'>Fu f1=new Zi(); System.out.println(f1.show());//f1的門面類型是Fu,但實際類型是Zi,所以調(diào)用的是重寫后的方法。</pre>
関數(shù): オブジェクトが特定のデータ型に屬するかどうかを判斷するために使用されます。 注: 戻り値の型はブール型です。
ユースケース:
Fu f1=new Zi(); Fu f2=new Son(); if(f1 instanceof Zi){ System.out.println("f1是Zi的類型"); } else{ System.out.println("f1是Son的類型"); }ポリモーフィック変換
ポリモーフィズム 変換は次のとおりです。上向き変換と下向き変換の 2 種類に分けられる 上向き変換: ポリモーフィズム自體が上向き変換のプロセスである
使用形式: 親クラス型変數(shù)名 = 新しい子クラス型();
適用可能なシナリオ: サブクラス型に直面する必要がない場合、対応する操作は、スケーラビリティを向上させるか、親クラスの関數(shù)を使用することによって完了できます。
下方変換: 上方変換されたサブクラス オブジェクトは、強制型変換の形式を使用して、親クラスの參照型をサブクラスの參照型に変換できます。形式: サブクラス型変數(shù)名 = (サブクラス型) 親クラス型変數(shù);- 適用シナリオ: サブクラス獨自の機能を使用したい場合。 ポリモーフィックのケース:
- )
package day0524; public class demo04 { public static void main(String[] args) { People p=new Stu(); p.eat(); //調(diào)用特有的方法 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("好好學(xué)習(xí)"); } } class Teachers extends People{ @Override public void eat(){ System.out.println("吃櫻桃"); } public void teach(){ System.out.println("認(rèn)真授課"); } }例 2:プロジェクトを?qū)g行した結(jié)果はどうなりますか?
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"); } }回答: A B
関連ビデオ チュートリアルの推奨事項: Java ビデオ チュートリアル
以上がJavaポリモーフィズムを理解する方法の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

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

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

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統(tǒng)合開発環(huán)境

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

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