[DEV] J-Jay

다형성(Polymorphism) 본문

Back-end/Java

다형성(Polymorphism)

J-Jay 2024. 5. 19. 16:48
728x90

다형성이란?

프로그램 언어의 각 요소들(상수, 변수, 식, 오브젝트, 함수, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다. (by.위키피디아)

 

다형성 예시

 

UserRepository라는 사용자의 데이터에 대한 인터페이스가 있고,

이것의 DB를 초기에는 MySQL로 구현했다고 가정하자.


근데 배포하기 하루전 DB를 Oracle로 바꾸는 일이 생겼다고 할때


처음부터 다시 개발하지 뭐... 

이런상황에서 사용할 수 있는게 다형성이다.

interface UserRepository {
	public createUser()
    public updateUser()
    public deleteUser()
    public getUser()
}

 

MySql

class UserRepositoryMySQL implements UserRepository {
	@Override
    createUser() { ... }
    
    ...
    
    @Override
    getUser() { ... }
}

 

Oracle

class UserRepositoryOracle implements UserRepository {
	@Override
    createUser() { ... }
    
    ...
    
    @Override
    getUser() { ... }
}

 

 

즉, 위와 같이 하나의 개념(UserRepository 를 DB로 저장)을 서로 다른 N개(MySql로 저장, Oracle 저장)의 개념으로

만드는 것을 을 다형성이라고 한다.

'Back-end > Java' 카테고리의 다른 글

예외(Exception)  (0) 2024.06.01
내부 클래스(Inner Class)  (0) 2024.06.01
상속(Inheritance)  (0) 2024.05.19
Java 17 주요변화  (0) 2023.08.31
Java I/O - 2  (0) 2023.05.02