Javaポリモーフィズムと例

Javaポリモーフィズムと例

ポリモーフィズムは、さまざまな方法で単一のアクションを実行するために使用できるOOP機能の1つです。たとえば、sound()メソッドを持つAnimalクラスがあるとします。これは汎用クラスであるため、「Roar」、「Meow」、「Oink」などの実装を提供することはできません。汎用メッセージを提供する必要がありました。

public  class  Animal { 
   ... 
   public  void sound (){ 
      System アウトprintln 「動物が音を出している」);    
   } 
}

ここで、動物クラスの2つのサブクラス、馬と猫を想定します。これらは、動物クラスを拡張します(継承を参照)。以下と同じメソッドの実装を提供できます。

パブリック クラス Horse  extends  Animal { 
... 
    @Override 
    public  void sound (){ 
        System アウトprintln "Neigh" ); 
    } 
}

そして

パブリック クラス Cat   Animalを拡張します{ 
... 
    @Override 
    public  void sound (){ 
        System アウトprintln "Meow" ); 
    } 
}

ご覧のとおり、すべてのサウンド()サブクラスに対して同じアクションがありましたが、同じことを行う方法がいくつかありました。これは、ポリモーフィズム(単一のアクションをさまざまな方法で実行できる機能)の完璧な例です。各動物には異なる音があるため、一般的な音()メソッドを呼び出すだけでは意味がありません。したがって、このメソッドが実行するアクションはオブジェクトのタイプに依存すると言うことができます。

プログラミングのポリモーフィズムとは何ですか?

ポリモーフィズムは、メソッドが作用するオブジェクトに基づいて異なることを行うメソッドの機能です。つまり、ポリモーフィズムにより、インターフェイスを定義し、複数の実装を実行できます。上記の例で見たように、異なるサブクラス2でsound()メソッドとそのさまざまな実装を定義しました。
どのsound()メソッドが呼び出されるかは、実行時に決定されます。したがって、上記の例はランタイムポリモーフィズムの例です。

ポリモーフィズムの種類とメソッドのオーバーロードとオーバーライドは、個別のチュートリアルで説明されています。ここで取得できます
。1. Javaでのメソッドのオーバーロード-これはコンパイル時間(または静的なポリモーフィズム)
の例です。2. Javaでのメソッドの上書き-これはランタイム(または動的なポリモーフィズム)の例です
。ポリモーフィズムの概要-ランタイムとコンパイル時間-これは、ポリモーフィズムの種類を詳細に扱った次のチュートリアルです。このトピックを読む前に、メソッドをオーバーロードしてオーバーライドすることをお勧めします。

完全なコードを書き留めましょう。

例1:Javaの多態性

ランタイムポリモーフィズムの例:

Animal.java

public  class  Animal { 
   public  void sound (){ 
      System アウトprintln 「動物が音を出している」);    
   } 
}

Horse.java

class  Horse  extends  Animal { 
    @Override 
    public  void sound (){ 
        System アウトprintln "Neigh" ); 
    } 
    public  static  void main String args []){ 
    	Animal obj =  new  Horse (); 
    	OBJ (); 
    } 
}

出力:

いななき

Cat.java

パブリック クラス Cat   Animal { 
    @Override 
    public  void sound (){ 
        Systemを拡張しますアウトprintln "Meow" ); 
    } 
    public  static  void main String args []){ 
    	Animal obj =  new  Cat (); 
    	OBJ (); 
    } 
}

出力:

ニャー

例2:コンパイル時のポリモーフィズム

対照的に、メソッドのオーバーロードは、コンパイル時のポリモーフィズムの例です。

クラス オーバーロード
{ 
    void demo int a 
    { 
       System アウトprintln "a:"  + a ); 
    } 
    void demo int a  int b 
    { 
       システムアウトprintln "a and b:"  + a +  "、"  + b ); 
    } 
    ダブルデモダブルA  {
       システムアウトprintln "double a:"  + a ); 
       a * aを返します。} } class MethodOverloading { public static void main String args []){ オーバーロードObj = new Overload (); 二重の結果; Obj デモ10 ); Obj デモ10 20 )。
    

 

      
    
            
        
         
          
        結果=  のObj  デモ5.5 ); 
        システムアウトprintln "O / P:"  + result ); 
    } 
}

ここで、メソッドdemo()は3回オーバーロードされます。最初のメソッドには1つのintパラメーターがあり、2番目のメソッドには2つのintパラメーターがあり、3番目のメソッドにはdoubleパラメーターがあります。呼び出されるメソッドは、メソッドを呼び出すときに渡す引数によって異なります。これは実行時コンパイル時に発生するため、このタイプのポリモーフィズムはコンパイル時ポリモーフィズムと呼ばれます。

出力:

 10 
A B  10 20 
ダブルA  5.5 
O / P  30.25

Leave a Reply

Your email address will not be published. Required fields are marked *