본문 바로가기
내가 보는 개발 공부/JAVA

다형성

by JeeGAe 2024. 1. 16.

다형성 ?

다형성(Polymorphism)은 클래스의 상속이나 인터페이스의 구현으로 인해 만들어진 객체들로 인해 다른 동작을 할 수있는 방식을 말합니다. 다형성을 위해서는 타입의 변환과 메서드의 오버라이딩(재정의)이 필요합니다.

 

상속으로 생기는 다형성

부모 클래스 A가 있다고 한다면 자식 클래스를 B, C를 만들 수 있습니다. A에는 commonMethod라는 메서드가 있고 B,C는 이 메서드를 오버라이딩 했다고 한다면 밑 코드로 인해 생성된 인스턴스 객체의 a 필드에 B나 C를 넣게 되면 자동 형변환이 되면서 B라면 B에 오버라이딩한 메서드가 C라면 C에 오버라이딩한 메서드가 실행되게 됩니다. 이렇게 어떤 클래스가 오는지에 따라 다르게 작동하는 방식을 다형성이라고 합니다.

public class Poly{
	public A a;
    
    public method(){
    	a.commonMethod();
    }
}

 

인터페이스에서의 다형성

인터페이스에서도 다형성을 이용 할 수 있습니다. A라는 인터페이스가 있고 B와 C는 A 인터페이스를 구현한 구현 객체입니다. A에는 commonMethod 라는 추상 메서드를 갖고 있고 B와 C는 각각 commonMethod를 오버라이딩하고 있습니다. 위 상황과 마찬가지로 밑 코드로 생성된 객체에 a 필드에 B를 참조시키거나 C를 참조시킬 때 method를 실행시키면 다르게 작동되게 됩니다. 

public class Poly{
	A a;
    
    method(){
    	a.commonMethod();
    }
}

 

 

 


이 글은 개발 공부하면서 작성하고 있는 글입니다. 잘못된 내용이 있을 수 있으니 댓글로 남겨주시면 감사하겠습니다.

'내가 보는 개발 공부 > JAVA' 카테고리의 다른 글

Lombok is 버그  (0) 2025.05.28
중첩 클래스 및 인터페이스 (안드로이드에서의 활용)  (0) 2024.01.17
싱글톤 패턴  (0) 2024.01.15
JAVA 데이터 타입  (0) 2024.01.08