[Java 소스] 묵시적 하향 캐스팅 오류 예
//기반 클래스
public abstract class Musician {
public abstract void Play();
}
//파생 클래스 Drummer
public class Drummer extends Musician {
@Override
public void Play() {
System.out.println("두두둥");
}
}
//파생 클래스 Pianist
public class Pianist extends Musician {
@Override
public void Play() {
System.out.println("딩동댕");
}
public void Tunning(){
System.out.println("도도 레레 미미 파파 솔솔");
}
}
//묵시적 하향 캐스팅 오류 예
public class Program {
public static void main(String[] args){
Musician musician = new Drummer();
musician.Play();
Pianist pianist = musician;
pianist.Tunning();
}
}
실행 결과
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Type mismatch: cannot convert from Musician to Pianist
at Program.main(Program.java:8)
본문
[Java] 5. 5 안전한 하향 캐스팅을 위한 예약어 instanceof
'Java > 디딤돌 Java 언어 Part1' 카테고리의 다른 글
[Java 소스] Object 클래스 equals 메서드 재정의 (0) | 2016.12.22 |
---|---|
[Java 소스] 안전한 하향 캐스팅 예 (0) | 2016.12.13 |
[Java 소스] 인터페이스 다중 상속 예 (0) | 2016.12.13 |
[Java 소스] 계층화 인터페이스 예 (0) | 2016.12.13 |
[Java 소스] 인터페이스 정의 및 구현 클래스 정의 예 (0) | 2016.12.13 |