코딩항해기
[과제/JAVA] 멘토시리즈 : 자바 - 11 다형성과 타입변환 응용문제 본문
문제 1. 다음 코드는 컴파일 에러가 발생합니다. 컴파일 에러가 발생하는 곳을 모두 찾아 수정해 보세요.
부모 클래스의 타입에 자식클래스의 값을 넣을 수 있으나, 반대의 경우는 불가하다.
(다운 캐스팅은 업캐스팅된 객체를 다시 자식 타입으로 바꾸는 것이고, 부모 객체가 자식 자료형으로 들어갈 수 있는 것이 아니다.)
따라서, SchoolBus 타입의 Car객체가 생길 수 없으니 수정해야하며, 상속관계가 아닌 관계에서는 업캐스팅 할 수 없기 때문에, Bus 타입의 OpenCar객체도 생성할 수 없다.
문제 2. 다음 설명에 해당하는 용어는 무엇입니까?
부모 클래스에게 상속받은 메서드를 재정의하여 자식 클래스용 메서드를 구현하고, 자식 객체로 메서드를 호출하면 자식이 재정의한 메서드가 호출되는 것을 오버라이딩이라고 한다.
많이 헷갈리는 오버로딩은 매개변수의 개수, 순서, 타입이 다를 때 같은 메서드명으로 정의할 수 있는 것으로 전혀 다른 개념이다.
문제 3. 다음과 같은 결과가 나오도록 아래 클래스를 구현해주세요.
class Speaker {
private String name;
public String getName(){
return name;
}
}
class RedSpeaker extends Speaker {
@Override
public String getName(){
return "빨간";
}
}
class BlueSpeaker extends Speaker {
@Override
public String getName(){
return "파란";
}
}
'problem solving > 문제 풀기' 카테고리의 다른 글
[과제/JAVA] 멘토시리즈 : 자바 - 13 내부클래스 응용문제 (0) | 2024.07.23 |
---|---|
[과제/JAVA] 멘토시리즈 : 자바 - 12 추상·인터페이스 응용문제 (0) | 2024.07.22 |
[과제/JAVA] 멘토시리즈 : 자바 - 10 상속 응용문제 (0) | 2024.07.21 |
[과제/JAVA] 멘토시리즈 : 자바 - 09 생성자 응용문제 (0) | 2024.07.20 |
[과제/JAVA] 멘토시리즈 : 자바 - 08 메서드 응용문제 (0) | 2024.07.19 |