Javaポリモーフィズムとは何ですか

爱喝马黛茶的安东尼
リリース: 2019-11-14 16:20:30
オリジナル
6330 人が閲覧しました

Javaポリモーフィズムとは何ですか

ポリモーフィズムとは、同じ動作が複数の異なる表現や形式を持つ能力です。ポリモーフィズムは、図に示すように、異なるインスタンスを使用して異なる操作を実行する同じインターフェイスです。

Javaポリモーフィズムとは何ですか

#ポリモーフィズムは、オブジェクトの複数の式を具体化したものです。

现实中,比如我们按下 F1 键这个动作:
·如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;
·如果当前在 Word 下弹出的就是 Word 帮助;
·在 Windows 下弹出的就是 Windows 帮助和支持。
同一个事件发生在不同的对象上会产生不同的结果。
ログイン後にコピー

ポリモーフィズムの利点

·1. 型間の結合関係を排除

#2. 置換可能性

##·

3. 拡張性 ##·

4. インターフェイス·

5. 柔軟性·

6. 単純化#ポリモーフィズムが存在するための 3 つの必要条件

##·継承

##·オーバーライド

·親クラス参照は子クラス オブジェクトを指します

例:

Parent p = new Child();
ログイン後にコピー
ポリモーフィズムを利用したメソッドを呼び出す場合は、親クラスにメソッドが存在するかどうかを確認し、存在しない場合はコンパイルエラーとなり、存在する場合は同名のサブクラスを呼び出します。 ポリモーフィズムの利点: プログラムを十分に拡張でき、すべてのクラスのオブジェクトを普遍的に処理できるようになります。

次はポリモーフィック インスタンスのデモです。詳細な説明についてはコメントを参照してください:

Test.java ファイル コード:

public class Test {
    public static void main(String[] args) {
      show(new Cat());  // 以 Cat 对象调用 show 方法
      show(new Dog());  // 以 Dog 对象调用 show 方法
                
      Animal a = new Cat();  // 向上转型  
      a.eat();               // 调用的是 Cat 的 eat
      Cat c = (Cat)a;        // 向下转型  
      c.work();        // 调用的是 Cat 的 work
  }  
            
    public static void show(Animal a)  {
      a.eat();  
        // 类型判断
        if (a instanceof Cat)  {  // 猫做的事情 
            Cat c = (Cat)a;  
            c.work();  
        } else if (a instanceof Dog) { // 狗做的事情 
            Dog c = (Dog)a;  
            c.work();  
        }  
    }  
}
 
abstract class Animal {  
    abstract void eat();  
}  
  
class Cat extends Animal {  
    public void eat() {  
        System.out.println("吃鱼");  
    }  
    public void work() {  
        System.out.println("抓老鼠");  
    }  
}  
  
class Dog extends Animal {  
    public void eat() {  
        System.out.println("吃骨头");  
    }  
    public void work() {  
        System.out.println("看家");  
    }  
}
ログイン後にコピー

上記のプログラムを実行すると、出力が表示されます結果は次のようになります。

吃鱼
抓老鼠
吃骨头
看家
吃鱼
抓老鼠
ログイン後にコピー
php 中国語の Web サイト、無料の

Java 入門チュートリアル

が多数あり、オンラインで学習することを歓迎します。

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

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