public static void main(String[] args) {
/*
ChildOne one = new ChildOne();
ChildTwo two = new ChildTwo();
one.method(); //답 -> ChildOne method()
two.method();//답 -> ChildTwo method()
//답은 위와 동일하나 인스턴스는 다름
Parent pone = new ChildOne();
Parent ptwo = new ChildTwo();
pone.method();
ptwo.method();
*/
/*
//1번. 인스턴스값으로 각각 관리해야 함
//10명
//lady
ChildOne lady[] = new ChildOne[10];
//man
ChildTwo man[] = new ChildTwo[10];
lady[0] = new ChildOne();
man[0] = new ChildTwo();
man[1] = new ChildTwo();
lady[1] = new ChildOne();
*/
/*
//2번
Parent human[] = new Parent[4];
human[0] = new ChildOne();
human[1] = new ChildTwo();
human[2] = new ChildTwo();
human[3] = new ChildTwo();
for (int i = 0; i < human.length; i++) {
human[i].method();
}
*/
Parent p1 = new ChildOne();
Parent p2 = new ChildTwo();
p1.method();
p2.method();
//답 : ChildOne method()
// ChildTwo method()
//p1은 Parent속중에서 ChildOne 과 동일하게 있는 메서드만 호출 가능하지만 형변환을 해주면
//ChildOne의 독립적인 메서드도 호출 가능
//ChildOnd 안의 단독적인 func()메소드 호출
ChildOne co = (ChildOne)p1;//*Class의 형변환
co.func();
//답:ChildOne func()
//위와 동일한 코드, 강제형변환 후 바로 호출해줌
((ChildOne)p1).func();
//답: ChildOne func()
}
public class Parent {
public Parent() {
}
public void method() {
System.out.println("Parent method()");
}
}
public class ChildOne extends Parent {
public ChildOne() {
// TODO Auto-generated constructor stub
}
//over ride 메소드
public void method() {
System.out.println("ChildOne method()");
}
public void func() {
System.out.println("ChildOne func()");
}
}
public class ChildTwo extends Parent {
public ChildTwo() {
// TODO Auto-generated constructor stub
}
// over ride
public void method() {
System.out.println("ChildTwo method()");
}
}
'JAVA > 객체 코드' 카테고리의 다른 글
static (0) | 2020.06.03 |
---|---|
상속(4) instanceOf (0) | 2020.06.03 |
상속(2) (0) | 2020.06.03 |
객체의 3대 특징 - 상속성 (0) | 2020.06.03 |
객체 3대 특징 (0) | 2020.06.03 |