1. 다음 빈칸에 알맞은 단어를 작성해 보세요.
- 구현 내용이 없이 비어있는 메서드를 [ ] (이)라고 부릅니다.
- 위 메서드를 선언할 때는 [ ] 키워드를 사용해야 합니다.
- 이러한 메서드를 1개 이상 가지고 있는 클래스를 [ ] 클래스라고 부릅니다.
더보기
추상 메서드, abstract, 추상 클래스
2. 다음 코드는 컴파일 에러가 발생합니다. 컴파일 에러가 발생하는 곳을 모두 찾아 수정해 보세요.
package section12;
abstract class Bike {
int wheel;
Bike(int wheel) {
this.wheel = wheel;
}
void info() {
System.out.println("이 자전거는 " + wheel + "발 자전거입니다.");
}
}
class ChildBike extends Bike {
ChildBike(int wheel) }
}
}
class PRACTICE_12_02 {
public static void main(String[] args) {
Bike b = new Bike(2);
ChildBike cb = new ChildBike(4);
cb.info();
}
}
답 )
package section12;
abstract class Bike {
int wheel;
Bike(int wheel) {
this.wheel = wheel;
}
void info() {
System.out.println("이 자전거는 " + wheel + "발 자전거입니다.");
}
}
class ChildBike extends Bike {
ChildBike(int wheel) {
super(wheel); // 부모 클래스인 Bike의 생성자 호출
}
}
public class PRACTICE_12_02 {
public static void main(String[] args) {
// 추상 클래스인 Bike는 직접 인스턴스화할 수 없음
// Bike b = new Bike(2); // 주석 처리
ChildBike cb = new ChildBike(4); // ChildBike 클래스의 인스턴스 생성
cb.info(); // ChildBike 클래스의 info() 메서드 호출
}
}
3. 다음 문장이 맞으면 O표, 틀리면 X표 하세요.
- 추상 클래스는 자식 클래스들이 상속(extends)받아 구현합니다.
- 인터페이스는 다른 클래스 코드들과의 사이에서 중간 매개체 역할을 합니다.
- 인터페이스 안에서 상수를 선언할 때, final을 명시하지 않으면 syntax error가 발생합니다.
- 추상클래스와 인터페이스의 추상 메서드는 구현부가 있으면 안됩니다.
- 클래스 간 다중 상속이 불가능한 것처럼 인터페이스도 다중 상속이 불가능합니다.
더보기
- 추상 클래스는 자식 클래스들이 상속(extends)받아 구현합니다. - O
- 인터페이스는 다른 클래스 코드들과의 사이에서 중간 매개체 역할을 합니다. O
- 인터페이스 안에서 상수를 선언할 때, final을 명시하지 않으면 syntax error가 발생합니다. X (발생하지 않음)
- 추상클래스와 인터페이스의 추상 메서드는 구현부가 있으면 안됩니다. O
- 클래스 간 다중 상속이 불가능한 것처럼 인터페이스도 다중 상속이 불가능합니다. O (단, 인터페이스 간에는 다중상속 가능)
4. 2번 예제 코드에서 Bike 클래스 안에 아래 메서드를 추가했습니다. ChildBike 클래스를 어떻게 수정해야 할까요?
abstract int getWheel(); |
더보기
ChildBike 클래스는 추상 메서드인 getWheel()을 구현해야
수정된 ChildBike 클래스는 다음과 같이 추상 메서드인 getWheel()을 구현해야 함
/*
ChildBike 클래스는 추상 메서드인 getWheel()을 구현해야
수정된 ChildBike 클래스는 다음과 같이 추상 메서드인 getWheel()을 구현해야 함
*/
class ChildBike extends Bike {
ChildBike(int wheel) {
super(wheel); // 부모 클래스인 Bike의 생성자 호출
}
@Override
int getWheel() {
return wheel; // Bike 클래스의 멤버 변수 wheel을 반환
}
}
5. 인터페이스를 사용함으로써 다음과 같은 객체 지향의 특징을 가질 수 있습니다. 각 용어의 개념에 대해 이해하고 있는 것을 같략히 서술해 보세요.
- 정보은닉 : 객체의 내부 상태(데이터 필드)를 외부로부터 숨기고, 오직 객체가 제공하는 메서드를 통해서만 데이터에 접근할 수 있도록 하는 것이다. 주로 접근 제어자(private, protected, public 등)를 사용하여 구현다.
- 모듈화 : 소프트웨어 설계의 한 방법으로, 큰 프로그램을 작은 독립적인 모듈(부분)로 나누는 것을 의미한다. 각각의 모듈은 특정 기능을 수행하며, 필요한 경우 다른 모듈과 상호작용한다. 모듈화는 소프트웨어를 보다 이해하기 쉽고, 유지보수가 용이하도록 만든다.
'책 > 멘토씨리즈 자바' 카테고리의 다른 글
[멘토씨리즈 자바] 14 예외 처리 응용문제 (0) | 2024.07.29 |
---|---|
[멘토씨리즈 자바] 13 내부클래스 응용문제 (0) | 2024.07.29 |
[멘토씨리즈 자바] 11 다형성과 타입 변환 응용문제 (2) | 2024.07.23 |
[멘토씨리즈 자바] 10 상속 응용문제 (0) | 2024.07.22 |
[멘토씨리즈 자바] 09 생성자 (0) | 2024.07.22 |