Java

Java

상속과 합성에 대한 이해

내가 상속과 합성에 대해서 처음 들었던 건 약 1년 전이었다. 그때 내 머릿속에 강하게 박힌 멘트는 "상속보다는 합성을 사용해라"였다. 그때는 합성에 대한 내용을 자세하게 이해하지 못해서 그냥 넘어갔고, 막연하게 상속은 좋지 못한 구조의 예시로 기억되곤 했다. 그래서 지금까지 코드를 작성하면서 상속을 직접적으로 사용한 경험이 없었다. 그런데 요즘 오브젝트를 다시 읽기 시작하면서 이전에 크게 생각하지 않고 지나쳤던 상속과 합성 부분을 정리해보고자 한다. 상속이란 상속이란, 슈퍼클래스를 서브클래스가 상속받아 사용하는 것을 말한다. 슈퍼클래스에서 사용된 필드, 메서드를 서브클래스에서도 동일하게 사용하고 확장할 수 있다. 그래서 자연스럽게 상위 클래스의 코드를 재사용할 수 있다는 것이다. 상속 관계는 'Is-a..

Java

Java의 final은 불변성을 보장해주지 않는다.

면접 스터디를 준비하며 Java의 불변 객체에 대해서 학습한 내용을 남겨 놓으려 한다. final 키워드는 무엇일까?final 키워드는 클래스, 메서드, 변수, 에 사용되는데 어디에 붙이느냐에 따라 용도가 조금씩 달라진다. 특히 변수나 객체의 필드에서 final 키워드는 조금 특별한 의미를 가지게 된다. 클래스클래스 앞에 final 키워드를 붙인다면 해당 클래스를 상속하는 것이 불가능하다.// 상위 클래스 public final class ParentClass { private int age; } // 하위 클래스 (불가능) public class ChildClass extends ParentClass{ public int age; } 메서드메서드 앞에 final 키워드를 붙인다면 해당 메서드의 오버라이..

로승리
'Java' 카테고리의 글 목록