day16_PolymorphismEx06

육희영·2021년 10월 28일
0
package com.java1.day16;

/* 다형성?
 * 여러개의 개별적인 클래스를 하나의 부모 클래스 객체로 통합 관리하여 효율성을 높인것 이다.
 * 이 개념의 시작은 반드시 각 클래스의 부모는 같아야 한다.
 * 다형성에서 가장 중요한 것은 부모 객체에 자식 클래스의 인스턴스를 대입 했을때 어떤 맴버를 사용할수 있고
 * 어떤 데이터에 접근할수 있는지를 판별해 내는것이다.
 */

/*
 class A { ... }
 class B extends A { ... }
 class C extends A { ... }
 B 와 C 클래스는 A 라는 클래스로부터 상속을 받았다.
 다형적 표현으로 바꾸면...
 A ap = new A();	// 일반적인 클래스 생성 방법
 A bp = new B();    // 다형적 표현
 A cp = new C();    // 다형적 표현
 자신의 클래스 객체가 아니지만 자신의 부모 클래스라면 인스턴스를 부모 객체에 담을수 있다는 것을 기억하자!
 자바에서 조상과 자손의 관계는 있지만 형제 관계는 없다.
*/

public class PolymorphismEx06 {
	public static void main(String[] args) {
		/*
		A3 ap = new A3();
		B3 bp = new B3();
		System.out.println("ap = " + ap);
		System.out.println("bp = " + bp);
		*/
	
		Object[] obj = new Object[2];	//모든 클래스는 Object 클래스를 상속받는다.
		obj[0] = new A3();
		obj[1] = new B3();
		for(int i=0; i<obj.length; i++) {
			System.out.println("obj[" + i + "] = " + obj[i]); //obj[i].toString()이 생략되었다.
		}
	}
}

class A3 {
	@Override
	public String toString() {	//오버라이딩
		return "A3 클래스";
	}
}

class B3 {
	@Override
	public String toString() {	//오버라이딩
		return "B3 클래스";
	}
}

출력결과

obj[0] = A3 클래스
obj[1] = B3 클래스

0개의 댓글

관련 채용 정보