| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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
													
											
												
												- DoIt
 - 크롤링
 - 웹 브라우저 전쟁
 - 예외
 - DoitSQL입문
 - 숫자 형식
 - 배열 3요소
 - 함수 선언
 - DoitSQL
 - 자바 예외
 - 함수
 - Doit입문SQL
 - dbms
 - 배열 예제
 - html
 - 예제
 - HTML역사
 - 자바 오류
 - 숫자형식오류
 - 우아한테크
 - R1C3
 - 크롤링 오류
 - 웹브라우저 수용도
 - SQL입문
 - 생성자
 - SQL
 - 키-값 데이터베이스
 - 데이터베이스
 - 페이지분석
 - 자바
 
													Archives
													
											
												
												- Today
 
- Total
 
반응형
    
    
    
  | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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
													
											
												
												- DoIt
 - 크롤링
 - 웹 브라우저 전쟁
 - 예외
 - DoitSQL입문
 - 숫자 형식
 - 배열 3요소
 - 함수 선언
 - DoitSQL
 - 자바 예외
 - 함수
 - Doit입문SQL
 - dbms
 - 배열 예제
 - html
 - 예제
 - HTML역사
 - 자바 오류
 - 숫자형식오류
 - 우아한테크
 - R1C3
 - 크롤링 오류
 - 웹브라우저 수용도
 - SQL입문
 - 생성자
 - SQL
 - 키-값 데이터베이스
 - 데이터베이스
 - 페이지분석
 - 자바
 
													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 | 
|---|---|
| [자바 문제 풀이] 별찍기 (2) | 2023.05.24 | 
| [자바 응용 문제] 상속 (0) | 2023.05.20 | 
| [자바 응용 문제] 생성자 (0) | 2023.05.20 | 
| [자바 응용 문제] 메서드 (0) | 2023.05.20 | 
			  Comments