Q1) 객체 지향 프로그래밍의 특징은 무엇인가요?
A1) 객체 지향 프로그래밍은 객체 중심의 프로그래밍으로 상속, 캡슐화, 추상화, 다형성이라는 네 가지 특징이 있습니다. 상속은 기존 클래스를 기반으로 새로운 클래스를 정의하는 것을 의미합니다. 캡슐화는 객체 네부에 직접 접근하지 않고 공개된 인터페이스를 통해서만 객체에 접근해 조작하도록 하는 것입니다. 추상화는 객체의 공통적인 특성을 추출하는 것으로, 변수 또는 메서드를 하나로 묶어 단순화하는 것입니다. 마지막으로 다형성은 동일한 인터페이스에 대해 다른 기능을 제공하는 것을 의미합니다.
Q2) 오버라이딩과 오버로딩의 차이점은 무엇인가요?
A2) 오버라이딩은 상속받은 부모 클래스의 메서드를 재정의하는 것으로, 자식 클래스에서 부모 클래스에 있는 메서드와 동일한 이름의 메서드를 정의합니다. 반면에 오버로딩은 하나의 클래스에서 동일한 이름을 가지는 메서드를 중복해서 정의하는 것입니다. 메서드 이름은 같지만, 매개변수가 달라서 메서드 호출 시 어떤 매개변수를 사용하는지에 따라 호출되는 메서드가 달라집니다.
Q3) 다중 상속이 무엇인지와 다중 상속을 사용할 경우 장단점을 설명해 주세요.
A3) 다중 상속이란 한 클래스가 여러 클래스를 상속받는 것을 의미합니다. 자식 클래스가 여러 부모 클래스를 가질 경우 중복되는 코드를 줄여 코드의 재사용성을 높일 수 있다는 장점이 있습니다. 하지만 어느 부모 클래스에서 상속받은 메서드와 속성인지 모호성이 발생할 수 있습니다. 또한, 클래스 간 결합도가 높아져 유지 보수하는 데 어려움이 발생할 수 있다는 단점이 있습니다.
'공부 기록 > CS' 카테고리의 다른 글
| 6.3 인공지능 (0) | 2024.08.20 |
|---|---|
| 6.2 자바 (0) | 2024.08.19 |
| 5장 요약정리 (0) | 2024.08.15 |
| 5.3 최단 거리 알고리즘 (0) | 2024.08.14 |
| 5.2 최소 신장 알고리즘 (0) | 2024.08.13 |