ホームページ > Java > &#&チュートリアル > Java の基礎: ポリモーフィズムの理解と応用

Java の基礎: ポリモーフィズムの理解と応用

(*-*)浩
リリース: 2019-08-13 16:52:25
転載
2768 人が閲覧しました

Java の基礎: ポリモーフィズムの理解と応用

#ポリモーフィズムの概要

1. ポリモーフィズムは、カプセル化と継承に続く 3 番目の主要なオブジェクト指向手法です。 。

2. ポリモーフィック リアリティの意味を理解する:

現実のものは、学生など、複数の形をとることがよくあります。学生は人間の一種です。特定のクラスメートである張三は、学生であると同時に人間でもあり、2つの姿で現れます。


Java はオブジェクト指向言語として、1 つのものの複数の形式を記述することもできます。 Student クラスが Person クラスを継承する場合、Student オブジェクトは Student と Person の両方になります。

3. ポリモーフィズムは、親クラスの参照変数がサブクラス オブジェクトを指すことができるという事実に反映されています。


4. 前提条件: 子と親の関係が存在する必要があります。


注: 多態性の親クラス参照変数を使用してメソッドを呼び出すと、サブクラスのオーバーライドされたメソッドが呼び出されます。


5. ポリモーフィックの定義と使用形式


定義形式: 親クラス型変数名=新しいサブクラス型();


ポリモーフィズムにおけるメンバーの特性

1. ポリモーフィックなメンバー変数: コンパイルおよび実行時に左側を確認してください

Fu f=new Zi();

System.out.println(f.num);//f は Fu の値であり、親の値のみを取得できます

2. ポリモーフィック メンバー メソッド: コンパイル時に左側を見て、


Fu f1=new Zi();

System.out.println(f1.show());//f1 のファサード タイプは Fu ですですが、実際の型は Zi であるため、オーバーライドされたメソッドが呼び出されます。


キーワードのインスタンス

機能: オブジェクトが特定のデータ型に属するかどうかを判断するために使用されます。

注: 戻り値の型は Boolean です

使用例:

Fu f1=new Zi();
Fu f2=new Son();
if(f1 instanceof Zi){
    System.out.println("f1是Zi的类型");
}
else{
    System.out.println("f1是Son的类型");
}
ログイン後にコピー

多態性変換

多態性変換ポイント 2 つのタイプがあります上方変換と下方変換の説明

上方変換: ポリモーフィズム自体が上方変換のプロセスです

使用形式: 親クラス型変数名=新しいサブクラス型();

適用可能なシナリオ: サブクラス型に直面する必要がない場合、スケーラビリティを向上させるか、親クラスの関数を使用することによって、対応する操作を完了できます。

下方変換: 上方変換されたサブクラス オブジェクトは、強制型変換形式を使用して、親クラスの参照型をサブクラスの参照型に変換できます。

使用形式: サブクラス型変数名= (サブクラスタイプ) 親クラスタイプの変数;

適用シナリオ: サブクラス独自の機能を使用したい場合。

多態性のケース:

例 1:

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("认真授课");
    }
}
ログイン後にコピー
例 2:

プロジェクトを実行した結果はどうなりますか?

rree

以上がJava の基礎: ポリモーフィズムの理解と応用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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