다형성(Polymorphism)

김덕근·2022년 12월 23일
0

concept

목록 보기
12/21

다양한 형태의 성질을 지님

상속 + 컴퓨터 연산규칙(같은 자료형끼리만 연산 가능) + 얕은복사

다형성

상속을 이용한 기술부모 클래스 타입 참조변수 하나
상속 관계에 있는 여러 타입의 자식 객체를 참조할 수 있는 기술

Ex) 부모클래스 변수명 = new 자식클래스();


- 업 캐스팅(UP Casting)

부모타입의 참조형 변수가 모든 자식 타입 객체의 주소를 참조할 수 있음

- 다운 캐스팅(Down Casting)

자식 객체의 주소를 받은 부모 참조형 변수를 가지고 자식의 멤버를 참조해야 할 경우,
부모 클래스 타입의 참조형 변수를 자식 클래스 타입으로 형변환 하는 것
자동으로 처리되지 않기 때문에 반드시 자식 타입을 명시하여 형변환

상속 다형성의 궁극적 목적?
중복되는 코드 제거해서 전체적인 코드 길이 감소


바인딩

실제 실행할 메소드 코드와 호출하는 코드를 연결 시키는 것

정적 바인딩

프로그램이 실행되기 전 컴파일 단계에서 메소드와 메소드 호출부를 연결

동적 바인딩

컴파일 시 정적 바인딩된 메소드를 실행할 당시의 객체 타입을 기준으로 바인딩 되는 것

상속 관계로 이루어져 다형성이 적용된 경우, 메소드 오버라이딩이 되어 있으면
정적으로 바인딩 된 메소드 코드보다 오버라이딩 된 메소드 코드를 우선적으로 수행


instanceof 연산자

현재 참조형 변수가 어떤 클래스 형의 객체 주소를 참조하고 있는지 확인 할 때 사용
클래스 타입이 맞으면 true, 맞지 않으면 false 반환

if(레퍼런스 instanceof 클래스타입) {
//true일때 처리할 내용, 해당 클래스 타입으로 down casting
}

profile
안녕하세요!

0개의 댓글