외부활동/JSCODE 자바

자바 1주차: 자바 객체 지향

사랑우주인 2025. 1. 3. 18:47

Q1. 오버로딩과 오버라이딩의 차이는 뭔가요?

  • 오버로딩은 같은 이름의 메서드를 매개변수의 타입이나 개수를 다르게 하여 여러 개 정의하는 것입니다.
  • 오버라이딩은 상속받은 메서드를 자식 클래스에서 재정의하는 것입니다. 오버로딩은 컴파일 타임에 결정되고, 오버라이딩은 런타임에 결정됩니다.

Q2. 다형성이 무엇이고, 왜 필요할까요?

  • 다형성은 동일한 메서드 호출이 객체 타입에 따라 다르게 동작하는 성질입니다. 이를 통해 코드의 유연성과 재사용성을 높일 수 있습니다.

Q3. 상속은 무엇인가요?

  • 상속은 부모 클래스의 속성과 메서드를 자식 클래스가 물려받는 것입니다. 코드 재사용성을 높이고, 공통 기능을 묶어 관리할 수 있습니다.

Q4. 상속의 단점은 무엇이 있을까요?

  • 상속은 부모-자식 클래스 간의 결합도를 높여 유연성이 떨어질 수 있습니다. 또한, 다중 상속이 지원되지 않아 복잡한 구조에서는 조합을 사용해야 합니다.

Q5. 상속과 조합의 차이에 대해 설명해 주세요.

  • 상속은 is-a 관계로, 부모 클래스의 기능을 확장합니다. 조합은 has-a 관계로, 다른 클래스의 객체를 포함하여 기능을 확장합니다. 조합은 결합도를 낮춰 유연성을 높입니다.

Q6. instanceof 키워드란 무엇인가요?

  • instanceof는 객체가 특정 클래스나 인터페이스의 인스턴스인지 확인하는 데 사용됩니다.

Q7. instanceof 키워드를 사용할 때 문제점으로 무엇이 있을까요?

  • instanceof를 많이 사용하면 객체 타입에 의존하게 되어 다형성의 장점을 해칠 수 있습니다. 인터페이스를 활용해 해결할 수 있습니다.

Q8. interface란 무엇일까요?

  • interface는 추상 메서드와 상수로만 이루어진 설계도입니다. 구현 클래스는 interface를 구현하여 메서드를 정의해야 합니다.

Q9. interface와 abstract class는 어떤 차이가 있나요?

  • interface는 다중 구현이 가능하지만, abstract class는 단일 상속만 가능합니다. abstract class는 구현된 메서드도 포함할 수 있습니다.

Q10. 언제 interface 사용하고, 언제 abstract class 사용 하나요?

  • interface는 공통된 행위를 정의할 때 사용하고, abstract class는 공통된 속성과 행위를 정의하면서 일부 구현을 제공할 때 사용합니다.

Q11. final 키워드에 대해 설명해 주세요.

  • final은 변경할 수 없음을 의미합니다. final 클래스는 상속할 수 없고, final 메서드는 오버라이딩할 수 없으며, final 변수는 값을 한 번만 할당할 수 있습니다.