FlowerBombs

객체 형변환 본문

JAVA

객체 형변환

CitronLemon 2019. 2. 28. 01:07

객체 형변환



묵적 ↔ 명시적

클래스 A와 B가 상속관계에 있을 경우, 자식 클래스의 객체를 부모 클래스의 객체에 대입하는 경우

1
2
3
4
5
6
7
8
9
public class A {
    public void foo(){...}
    public void bar(){...}
}
 
public class B extends A {
    public void bar(){...}      // 부모의 기능을 재정의
    public void hello(){...}    // 부모와 상관없이 새롭게 추가한 기능
}
cs

1
2
B b = new B();
A a = b;   //암묵적 형변환
cs



1
A a = new B();
cs



형변환이 된 객체는 부모에게 상속받았거나 부모의 기능을 재정의한 것들만 사용가능하다. 
위 소스코드에서 hello()라는 메서드는 사용할 수 없도록 가려진다.


명시적

부모 형태의 객체가 다시 자식 형태로 되돌아가는 경우의 형변환.
최초 생성된 객체형태가 자식클래스였던 객체를 부모 형태로 변환했다가 다시 원래의 형태로 되돌릴 경우만 사용 가능함.

1
2
A a = new B();
B k = (B) a;      // 변환할 클래스 이름을 () 안에 명시.
cs






'JAVA' 카테고리의 다른 글

추상화  (0) 2019.02.28
객체 배열  (0) 2019.02.28
오버로드  (0) 2019.02.28
오버라이드  (0) 2019.02.28
상속성  (0) 2019.02.26
Comments