All Honey Tip

[기술 면접] 3. 상속과 조합을 설명해보세요.

수정 일:

발행 일:

상속 조합

저번 시간에 이어서, 이번엔 상속과 조합에 대해 알아본 후에 Call by Value와 Call By Reference에 대해 알아보도록 하겠습니다.

image 59





상속은 is - A이고 조합은 have - B로 말씀드릴 수 있습니다. 추가로, 상속에서 부모의 변화는 자손에게 영향을 끼치므로 유연하지 못 하고, 조합은 다른 클래스를 소유한 클래스가, 포함되는 클래스에 영향을 끼치지 못 합니다.

상속
class 동물 {}
class 강아지 extends 동물 {}
조합
class 자동차 {
    바퀴 c;
}
class 바퀴 {}







Q: 상속의 단점에는 무엇이 있나요?

캡슐화를 깨며 상위 클래스의 변경이 하위 클래스의 변경에 영향을 줄 수 있습니다.








Q: 접근제어자를 설명해보세요.

객체가 수행하는 기능의 협력 범위를 표현합니다. 접근 제어자는 외부에 보여주고 싶은 정보들을 선택적으로 제공하여 캡슐화가 가능합니다.

  • public : 전체 영역에서 접근 가능합니다.
  • private : 해당 클래스 내에서만 접근 가능합니다.
  • protected : 같은 패키지, 다른 패키지의 자손에서만 접근 가능합니다.
  • default : 는 같은 패키지 내에서만 접근 가능합니다.





Q: 전역 변수와 static 변수에 대해 말씀해주세요.

두 가지 모두 프로그램 종료 시점에서 메모리가 해제됩니다.

  • 전역 변수는 new로 초기화하고, 다른 영역에서도 접근할 수 있으므로 상대적으로 보안이 취약합니다.
  • static 변수는 선언된 함수 내에서만 접근할 수 있습니다. 컴파일 시 가장 먼저 메모리에 올라가고 최초 1회 초기화 이후, 초기화되지 않습니다. 메모리에 고정되기 때문에, 남용 시 프로그램 실행 속도를 저하할 수 있습니다.






Q: Call by Value와 Call By Reference가 무엇인가요?

Call by Value란, 값을 호출하는 것을 의미하며 전달받은 값을 복사하여 처리합니다. 즉, 전달받은 값을 변경해도 원본은 변경되지 않습니다.

  • java

Call by Reference란 참조에 의한 호출을 의미하며, 전달받은 값을 직접 참조합니다. 즉, 전달받은 값을 변경하면 원본도 같이 변경됩니다.







상속과 조합은 연관된 개념이 많이 있습니다. 기본기를 다지기 위해 한 번 읽어보시길 권해드립니다 🙂







마치며

이번 시간엔 상속과 조합, 전역 변수와 static, 그리고 면접 질문에 자주 등장한다는 Call by Value와 Call By Reference에 대해 간단하게 설명해보았습니다.

다음 시간에는 추상클래스 / 인터페이스 / 클래스 / 객체에 대해 알아보겠습니다.

상속 조합


코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다