Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

컴파일 타임 다형성과 런타임 다형성의 차이점

<시간/>

다형성은 가장 중요한 OOP 개념 중 하나입니다. 그것은 우리가 여러 가지 방법으로 단일 작업을 수행할 수 있는 개념입니다. 다형성에는 두 가지 유형이 있습니다. 하나는 컴파일 시간 다형성이고 다른 하나는 런타임 다형성입니다.

메소드 오버로딩은 컴파일 타임 다형성의 예이고 메소드 오버라이드는 런타임 다형성의 예입니다.

Sr. 아니요. 컴파일 타임 다형성 런타임 다형성
1
기본
컴파일 시간 다형성은 컴파일 시간에 바인딩이 발생함을 의미합니다.
런타임에 어떤 메소드가 호출할지 알게 된 런타임 다형성
2
정적/동적
제본


정적 바인딩을 통해 달성할 수 있습니다.
동적 바인딩을 통해 달성할 수 있습니다.
4.
상속
상속이 관련되지 않음
상속이 관련됨
5
예시
메서드 오버로딩은 컴파일 시간 다형성의 예입니다.
메서드 재정의는 런타임 다형성의 예입니다.

컴파일 타임 다형성의 예

public class Main {
   public static void main(String args[]) {
      CompileTimePloymorphismExample obj = new CompileTimePloymorphismExample();
      obj.display();
      obj.display("Polymorphism");
   }
}
class CompileTimePloymorphismExample {
   void display() {
      System.out.println("In Display without parameter");
   }
   void display(String value) {
      System.out.println("In Display with parameter" + value);
   }
}

런타임 다형성의 예

public class Main {
   public static void main(String args[]) {
      RunTimePolymorphismParentClassExample obj = new RunTimePolymorphismSubClassExample();
      obj.display();
   }
}

class RunTimePolymorphismParentClassExample {
   public void display() {
      System.out.println("Overridden Method");
   }
}

public class RunTimePolymorphismSubClassExample extends RunTimePolymorphismParentExample {

   public void display() {
      System.out.println("Overriding Method");
   }
}