다형성은 가장 중요한 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"); } }