기본 콘텐츠로 건너뛰기

0.13 Casting +

Casting


1. 기본 타입의 형변환
2. 참조 타입의 형변환




1. 기본 타입의 형변환





2. 참조 타입의 형변환


public class animalCheck{
    public static void main(String[] args){
        Animal a = new Animal();
        Dog d  = new Dog();
  
    //-------------묵시적 형변환--------------
        a = d;
        //상위의 것은 하위의 것을 참조할 수 있음
        //작은 것은 큰 쪽으로 변환이 가능
   
        a.fly();      //날 수 있는 동물은 가능하니까
        //d.fly();    //실행 불가능
    //-------------명시적 형변환--------------         
        d = (Dog)a;
        d.jump();
        //d = a;    
        //큰 것을 작은 쪽으로 담기 위해서는 명시해줘야
    //-------------명시적 형변환2--------------
        a = new Animal();
        d = (Dog)a;
        
        // Animal a 참조변수는 Animal 자신의 인스턴스를 참조
        // 그렇기 때문에 Animal a 참조변수는 Animal 인스턴스를 참조하기 때문에 Exception이 발생
        // 이렇듯 Animal a가 Animal 인스턴스를 참조하고 있는 경우가 있을 수 있기에 Down-cating은 명기 필수
        // d = (Dog)a; 컴파일시 Exception

    }//main method over
}//class over
class Animal(){
    String houling;

    void fly(){
        System.out.println("birds fly sky");
    }
    void swim(){
        System.out.println("fish and whale swim");
    }
    void houling(){
        System.out.println("animal houl");
    }
}//class over
class Dog extends Animal{
  
void houling(){
        System.out.println("멍멍");
    }
}//class over
cs