다형성은 다양한 형태를 취할 수 있는 개체의 능력입니다. OOP에서 다형성의 가장 일반적인 사용은 부모 클래스 참조가 자식 클래스 개체를 참조하는 데 사용될 때 발생합니다.
둘 이상의 IS-A 테스트를 통과할 수 있는 모든 Java 객체는 다형성으로 간주됩니다. Java에서 모든 Java 객체는 모든 객체가 자체 유형 및 객체 클래스에 대한 IS-A 테스트를 통과하기 때문에 다형성입니다.
개체에 액세스할 수 있는 유일한 방법은 참조 변수를 통해서라는 것을 아는 것이 중요합니다. 참조 변수는 한 가지 유형만 가능합니다. 한번 선언된 참조변수의 타입은 변경할 수 없습니다.
참조 변수는 final로 선언되지 않은 경우 다른 개체에 다시 할당할 수 있습니다. 참조 변수의 유형은 개체에서 호출할 수 있는 메서드를 결정합니다.
참조 변수는 선언된 유형의 모든 개체 또는 선언된 유형의 하위 유형을 참조할 수 있습니다. 참조 변수는 클래스 또는 인터페이스 유형으로 선언할 수 있습니다.
예시
예를 살펴보겠습니다.
public interface Vegetarian{} public class Animal{} public class Deer extends Animal implements Vegetarian{}
이제 Deer 클래스는 다중 상속이 있기 때문에 다형성으로 간주됩니다. 다음은 위의 예에 해당합니다. -
- 사슴은 동물입니다
- 사슴은 채식주의자입니다
- 사슴은 사슴입니다
- 사슴은 개체입니다
참조 변수 사실을 Deer 개체 참조에 적용할 때 다음 선언은 유효합니다. −
예시
Deer d = new Deer(); Animal a = d; Vegetarian v = d; Object o = d;
모든 참조 변수 d, a, v, o는 힙에서 동일한 Deer 개체를 참조합니다.