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 변수는 값을 한 번만 할당할 수 있습니다.
'외부활동 > JSCODE 자바' 카테고리의 다른 글
자바 4주차: 동시성 프로그래밍 기초(작성 중) (0) | 2025.01.19 |
---|---|
자바 3주차: 컬렉션 기초(작성 중) (0) | 2025.01.17 |
자바 2주차: (작성 중) (0) | 2025.01.06 |
자바 1주차: 자바 기본 (0) | 2025.01.03 |