Java/디딤돌 Java 언어 Part1

[Java 소스] 묵시적 하향 캐스팅 오류 예

언제나휴일 2016. 12. 13. 14:41
반응형

[Java 소스] 묵시적 하향 캐스팅 오류 예


Drummer.java

Musician.java

Pianist.java

Program.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





반응형