Object
Object클래스
import java.lang.*; // 생략가능
public class A extends Object { //extends키워드 생략가능
public A() { // 기본생성자 생략가능
super();
}
public void display() {
System.out.println("나는 A이다.");
}
@Override
public String toString() {
return "재정의 메서드입니다.";
}
}
Object클래스는 모든 클래스의 최상위 클래스이다.
Object클래스의 toString메소드는 원래 주소값을 출력하지만
재정의를 해서 기능을 바꿀 수 있다.
Object o = new A();
((A)o).display();
업캐스팅이 가능하며 반대로 다운캐스팅도 가능하다.
다형성 인수
public static void main(String[] args) {
A a = new A();
display(a);
B b = new B();
display(b);
}
private static void display(Object o) { //다형성인수
if (o instanceof A) { //o가 A로 부터 나온 인스턴스라면
((A)o).go();
} else {
((B)o).go();
}
}
display메소드에 A a, B b로 받는 대신 Object o로 한번에 받을 수 있다.
다형성 배열
Object[] o = new Object[2]; //다형성배열
o[0] = new A();
o[1] = new B();
for (int i = 0; i < o.length; i++) {
if (o[i] instanceof A) {
((A)o[i]).go();
} else {
((B)o[i]).go();
}
}
Object를 부모로 사용해 배열로 담을 수 있다.
Leave a comment