JAVA 자바 다형성이란..?

·2021년 11월 8일
0

인프런 강의를 듣던 중 인스터스 생성하는 부분에 의문점이 생겼다. 바로 이 코드다.

    private final MemberRepository memberRepository= new MemoryMemberRepository();

상위객체 =new 하위객체() 이런 형식인 것이다.

김영한강사님의 답변에 따르면 자바는 객체 지향 언어이고 다형성(Polymorphism)이라는 성질 때문이다.

다형성

다형성이란 여러가지 형태를 가질 수 있는것.
하나의 메소드나 클래스가 있을 때 다양한 방법으로 동작하는것 (ex.overroading, overriding).
하나의 참조변수로 여러타입의 객체를 참조할 수 있는것.

이점이 여러가지 있는데,
1. 상위 인터페이스의 제약을 따르겠다는 의도가 명확히 보임
2. 향후 변경시에 사용코드를 변경하지 않아도 됨.
3. 하위 객체를 다른 클래스로 변경이 필요하다면 선언하는 코드만 변경하면 됨.

'개발은 무의미한 자유도를 제공하는 것 보다, 제약을 부여하는 것이 혼란을 줄이고, 유지보수하기 쉽다'라고 줄여서 말할 수 있을거같다.

출처 :
https://www.inflearn.com/questions/47449
https://mainpower4309.tistory.com/11

profile
중요한 건 꺾여도 다시 일어서는 마음

0개의 댓글