일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- HTML역사
- 생성자
- 숫자형식오류
- 데이터베이스
- SQL입문
- dbms
- 크롤링 오류
- 숫자 형식
- 웹 브라우저 전쟁
- 자바 예외
- 키-값 데이터베이스
- 자바 오류
- R1C3
- 예외
- Doit입문SQL
- 크롤링
- 배열 예제
- 배열 3요소
- 페이지분석
- DoIt
- SQL
- 함수 선언
- 자바
- html
- 함수
- 예제
- 우아한테크
- DoitSQL
- 웹브라우저 수용도
- DoitSQL입문
Archives
- Today
- Total
프로그래밍
[자바 응용 문제] 다형성과 타입 변환 본문
728x90
반응형
다형성과 타입 변환
교재: 멘토씨리즈 JAVA
300p ~ 301p
1. 다음 코드는 컴파일 에러가 발생합니다. 컴파일 에러가 발생하는 곳을 모두 찾아 수정해보세요.
package section11;
class Car {}
class Bus extends Car {}
class SchoolBus extends Bus {}
class OpenCar extends Car {}
class SportsCar extends OpenCar {}
public class PRACTICE_11_01 {
public static void main(String[] args) {
Car c1 = new SchoolBus();
Bus b1 = new Bus();
SchoolBus sb = new Car();
Car c2 = new OpenCar();
OpenCar oc = new SportsCar();
Bus b3 = new OpenCar();
Bus b4 = new SportsCar();
}
}
답안코드
package section11;
class Car {}
class Bus extends Car {}
class SchoolBus extends Bus {}
class OpenCar extends Car {}
class SportsCar extends OpenCar {}
public class PRACTICE_11_01 {
public static void main(String[] args) {
Car c1 = new SchoolBus();
Bus b1 = new Bus();
SchoolBus sb = new SchoolBus();
Car c2 = new OpenCar();
OpenCar oc = new SportsCar();
Bus b3 = new SchoolBus();
Bus b4 = new Bus();
}
}
2. 다음 설명에 해당하는 용어는 무엇입니까?
부모 클래스에게 상속받은 메서드를 재정의하여 자식 클래스용 메서드를 구현하고
자식 객체를 통해 메서드를 호출할 때는 부모의 메서드가 아니라 자식의 메서드가 호출됩니다.
- 오버라이딩
- 오버로딩
- 오버플로우
답: 1번
3. 다음 코드에서 컴파일 에러가 발생하는 곳을 찾아보고, 그 이유를 적어보세요.
- class Speaker
- class RedSpeaker
- class BlueSpeaker
package section11;
class Person {
Speaker speaker;
Person(Speaker speaker) {
this.speaker = speaker;
}
void turnOn() {
System.out.println(speaker.getName() + "이 켜졌습니다.");
}
}
public class PRACTICE_11_03 {
public static void main(String[] args) {
Speaker s1 = new RedSpeaker();
Person p1 = new Person(s1);
p1.turnOn();
Speaker s2 = new BlueSpeaker();
Person p2 = new Person(s2);
p2.turnOn();
}
}
// 실행 결과
빨간 스피커가 커졌습니다.
파란 스피커가 커졌습니다.
답안 코드
package section11;
class Person {
Speaker speaker;
Person(Speaker speaker) {
this.speaker = speaker;
}
void turnOn() {
System.out.println(speaker.getName() + "가 켜졌습니다.");
}
}
class Speaker {
private String name;
Speaker(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class RedSpeaker extends Speaker {
RedSpeaker() {
super("빨간 스피커");
}
}
class BlueSpeaker extends Speaker {
BlueSpeaker() {
super("파란 스피커");
}
}
public class PRACTICE_11_03 {
public static void main(String[] args) {
Speaker s1 = new RedSpeaker();
Person p1 = new Person(s1);
p1.turnOn();
Speaker s2 = new BlueSpeaker();
Person p2 = new Person(s2);
p2.turnOn();
}
}
728x90
반응형
'자바 > 자바 예제 풀이' 카테고리의 다른 글
[자바 응용 문제] 자바 복습 문제 (0) | 2023.05.26 |
---|---|
[자바 문제 풀이] 별찍기 (0) | 2023.05.24 |
[자바 응용 문제] 상속 (0) | 2023.05.20 |
[자바 응용 문제] 생성자 (0) | 2023.05.20 |
[자바 응용 문제] 메서드 (0) | 2023.05.20 |
Comments