1. ホーム
  2. java

[解決済み] Javaにおける動的ポリモーフィズムと静的ポリモーフィズムの違いは何ですか?

2022-06-19 23:33:04

質問

の違いを説明する簡単な例をどなたか教えてください。 動的な スタティック ポリモーフィズムはJavaで?

どのように解決するのですか?

ポリモーフィズム

1. 静的バインディング/コンパイル時バインディング/アーリーバインディング/メソッドオーバーローディング(同一クラス内)。

2. 動的バインディング/ランタイムバインディング/レイトバインディング/メソッドオーバーライド(異なるクラスで)。

オーバーロードの例です。

class Calculation {  
  void sum(int a,int b){System.out.println(a+b);}  
  void sum(int a,int b,int c){System.out.println(a+b+c);}  

  public static void main(String args[]) {  
    Calculation obj=new Calculation();  
    obj.sum(10,10,10);  // 30
    obj.sum(20,20);     //40 
  }  
}  

を上書きする例です。

class Animal {    
   public void move(){
      System.out.println("Animals can move");
   }
}

class Dog extends Animal {

   public void move() {
      System.out.println("Dogs can walk and run");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal a = new Animal(); // Animal reference and object
      Animal b = new Dog(); // Animal reference but Dog object

      a.move();//output: Animals can move

      b.move();//output:Dogs can walk and run
   }
}