상속
[OOP] 상속보다는 조합을 사용하자
[OOP] 상속보다는 조합을 사용하자
2023.03.15상속을 왜 사용하는가? 먼저 제목 내용을 살펴보기 전에 상속을 왜 사용하는지에 대해 생각해 볼 필요가 있다. 우리는 상속을 왜 사용하는가? 먼저 대부분의 이유는 다음과 크게 다르지 않다고 생각한다. 코드를 재사용하여 중복을 줄인다 변화에 대해 유연해지고 확장성이 증가한다. 개발 시간이 줄어든다. 하지만 위 내용은 상속을 적절히 사용했을 경우에만 해당한다. 상속을 잘못 사용하게되면 변화에 유연하지 않고 에러를 내기 쉽다. 상속의 단점 상속은 상위 클래스의 구현이 하위 클래스에 노출되기 때문에 캡슐화를 깨트린다. 캡슐화가 깨짐으로써 하위 클래스가 상위 클래스에 강하게 결합, 의존하게되고 강한 결합과 의존은 변화에 유연하게 대처하기 어려워진다. 예제를 통해서 살펴보자. 다음 예제는 로또 번호와 당첨 번호를 가..
[Java] abstract class vs interface
[Java] abstract class vs interface
2023.01.20abstract class에 대해 공부하다가 interface와의 차이점이 궁금하여 작성하였다. 추상 클래스(Abstract class) vs 인터페이스(Interface) 추상 클래스(Abstract class) 먼저 추상 클래스(abstract class)는 클래스 내에 추상 메서드가 하나 이상 포함된 클래스를 말한다. 클래스 안에 메서드가 하나 이상 있다면 그 클래스 앞에는 반드시 abstract 클래스명으로 표기되어야 하며 abstract와 final 키워드를 동시에 표기할 수 없다. 일반 클래스에서 추상 클래스를 상속을 받는다면 추상메서드가 있을 경우 모두 구현해주어야 한다. 인터페이스(Interface) 반면 인터페이스(interface)는 모든 메서드가 추상 메서드인 경우이다. 간단히 생각하..