Java/디딤돌 Java 언어 Part1

[Java 소스] 안전한 하향 캐스팅 예

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

[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 {

        static void foo(Musician musician){

               if(musician instanceof Pianist){

                       Pianist pianist = (Pianist)musician;                  

                       pianist.Tunning();

               }

               musician.Play();

        }

        public static void main(String[] args){

               Musician musician = new Drummer();

               foo(musician);

               musician = new Pianist();

               foo(musician);

        }

}


실행 결과

두두둥

도도 레레 미미 파파 솔솔

딩동댕



본문

[Java] 5. 5 안전한 하향 캐스팅을 위한 예약어 instanceof

학습에 도움이 되시면 ebook 구입(판매가 3000, ebook)하여 소장하시면 감사하겠습니다.





반응형