팀 프로젝트를 하면서
의문이 들었던 부분? 궁금했던 부분에 대해서 주말 중에 공부를 하면서
포스팅을 하는데
오늘은 추상화 클래스와 인터페이스입니다.
먼저 추상화 클래스와 인터페이스는
추상 메소드를 선언해두는 것.
여기까지는 이해가 되는데
결국에 가장 큰 차이가 무엇인가??하다가
검색을 하면서 어느정도 감을 잡게 되었는데
일단 보면 extends와 implements입니다.
둘 다 상속을 하지만 가장 큰 것은
자바는 다중 상속이 불가능하다는 것입니다.(extends에서 2개 이상 정의를 해도 사용 x)
인터페이스의 경우에는 implements에서 선언하고 여러개 사용이 가능하다!
결국에는 비슷한 느낌이 크게 느껴집니다.
여기서 한 가지 예로
연필이 있다고 가정을 합니다.
거기서 연필을 만드는 회사가 a,b,c,d,e가 있는데
여기서 이 5군데의 회사가 공통적으로 사용 하는 부분은
바로 '연필로 무엇인가를 적는 기능'입니다.
즉 추상화 클래스에서 추상화 메소드를 선언만 한 후,
extends 즉 상속한 곳에서
본인들이 생각한 코드를 작성해서 구현을 합니다.
그럼 implements는??
연필의 부가적인 기능들입니다.
연필을 사용하면 빛나게 하고 싶다, 연필에서 소리가 난다 등등의
공통적인 것이 아닌 특징? 이러한 부분들을
구현을 할 때 implements의 인터페이스를 이용하는 것.
이렇게 추상화클래스와 인터페이스를 이해를 했는데...
나름대로 이해를 하고 그것을 작성해서
비유가 적절한 것인지
그 비유가 적절하게 가리키고 있는지는
잘 모르겠다...ㅎ...
'주절주절' 카테고리의 다른 글
오류? (0) | 2021.03.03 |
---|---|
장바구니에서 막히는 중.... (0) | 2021.03.02 |
자바스크립트 오류 (0) | 2021.02.23 |
ibatis와 mybatis의 이유 (0) | 2021.02.21 |
이건 뭐지.... (0) | 2021.02.18 |