Polymorphism ( 다형성 )

양혜정·2024년 2월 12일
0

Begin_java

목록 보기
58/71

다형성

  • 상속을 이용하여 여러 클래스를 하나의 클래스 타입으로 다루는 기술

다형성

  • '자식클래스로 생성되어진 객체를 부모 클래스 타입으로 받을 수 있다' 는 것.

Ex)

Animal[] ani_arr = new Animal[5];	// Animal 저장소 만들기

Dog dog = new Dog();	// 기존방법

// 다형성
Animal ani1 = new Dog();

// 다형성
ani_Arr[0] = new Dog();

부모클래스의 배열로 합칠 경우

Ex)

1. 자식클래스의 배열 합치기

Gujikja[] gu_arr = new Gujikja[5];
Company[] cp_arr = new Company[4];
// 을 대신하여
CommonMembber[] cmbr = new CommonMember[9];
// 대체

2. 자식클래스의 타입 구분을 위해 부모 클래스에 type 구분 필드 넣기

int type;
// setter, getter 하기
public void setType(int type){
	if(type == 1 || type == 2) {
    	this.type = type;
        // type 의 값이 1 이라면 Gujikja 라 보고,
        // type 의 값이 2 이라면 Company 라 본다.
    }
}	// end of public void setType(int type)---------
public int getType(){
	return type;
}	// end of public int getType()--------------

3. 자식클래스에 있는 메소드를 사용하고 싶은 경우

((Gujikja)cmbr_arr[i])) == Gujikja
((Company)cmbr_arr[i])) == Company
// 뒤에 . 을 붙여 사용 가능

4. 호출방법

// Gujikja 호출
if(cmbr_arr[i].getType() == 1)	// int type 을 만든 경우
// 또는
if(cmbr_arr[i] instanceof Gujikja) // 필드를 만들지 않은 경우

// Company 호출
if(cmbr_arr[i].getType() == 2)	// int type 을 만든 경우
// 또는
if(cmbr_arr[i] instanceof Company) // 필드를 만들지 않은 경우

정리

my.day15.e.polymorphism -> Animal, Dog, Cat, Duck, Main

my.day15.f.polymorphism
-> CommonMember, Gujikja, Company, Ctrl_common, Ctrl_gujikja, Ctrl_company, Main_gujikja_company

0개의 댓글

관련 채용 정보