본문 바로가기

JAVA/객체 코드

상속(3) 형변환, 배열// (다형성)

	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