wisdom.log
로그인
wisdom.log
로그인
자바 추상클래스와 인터페이스
wisdom
·
2022년 7월 19일
팔로우
0
Java
0
백엔드 개발자라면?
목록 보기
2/42
OOP
장점
관리
재사용
확장
추상클래스와 인터페이스의 차이와 존재 이유가 뭘까
추상클래스
정의
추상메서드가 하나 이상 포함되거나
abstract로 정의된 경우
추상 메서드
는 내부가 아직 구현되지 않은 abstract로 정의된 메서드를 말한다. -> 아직 구체적으로 표현되지 않은 메서드
형태
"일반변수(가능)+일반메서드(가능)+추상메서드"
어떤 상황에서 쓸까?
같은 종류나 행동들을 구현할 게 많을 때 쓰고
당연하지만 추상메소드를 상속받는 자식클래스에서 구현할 때 상속에 대한 계층 구조를 명확하게 표현할 때 추상클래스를 이용하면 효과적이다.
new 클래스명으로 객체를 만들 수 없다.
해당 클래스는 완벽하게 정의되지 않았기 때문
인터페이스
정의
모든 메서드가 추상메서드
형태
"상수"+"추상메서드"
어떤 상황에서 쓸까?
일반 변수들과 일반 메서드들도 쓸 수 있고 아직 구현하지 않아도될 메서드는 그냥 내버려 둘 수 있어 상황에 따라 편리하다.
인터페이스는 디자인을 구성하는 요소들이 자주 바뀔 때 쓰면 유용하고
당연하지만 메서드 형태만 서로 공유해서 구현되는 상황일 때 적합하고 클래스 전체가 아닌 메서드들만 쓰고 싶을 때 인터페이스를 이용하면 효과적이다.
공통점
추상 클래스와 인터페이스는 상속받는 클래스 혹은 구현받는 인터페이스 안에 있는
추상 메소드를 구현
하도록 한다.
차이점- 각각 존재 목적이 다름
추상클래스
궁극적인 목적이 상속하기 위함
그 추상 클래스를 상속받아서 기능을 이용하고, 확장시키는 데 있다.
인터페이스
특정 인터페이스를 구현한 객체들에 대해서 동일한 동작을 약속하기 위해 존재한다.
인터페이스는 함수의 껍데기만 있는데, 그 이유는 그 함수의 구현을 하기 위해서다.
회고
객체지향을 공부하다보니 DDD 의 개념이 나왔다. 다음주에 좀 더 공부해보고 코드에도 적용해봐야겠다.
참고:
https://coder-in-war.tistory.com/entry/SpringBoot-10-DDD-%EB%8F%84%EB%A9%94%EC%9D%B8%EC%A3%BC%EB%8F%84%EC%84%A4%EA%B3%84
wisdom
문제를 정의하고, 문제를 해결하는
팔로우
이전 포스트
자바 변수 그리고 static 개념
다음 포스트
객체와 설계
0개의 댓글
댓글 작성