진호진호
Archive
진호진호
  • Me
    • 공부
      • Java
      • 자료구조
    • 일상
      • 책
      • 해외여행
      • 국내여행
      • 돌아보기
    • etc

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • 국내여행
  • 깡돼후
  • 자바
  • 하스스톤
  • 여행
  • 여수 밤바다
  • 오늘부터 개발자
  • Java
  • 여와 해변
  • 아무말
  • 타입 변환
  • 23년
  • 만습지
  • 시작해요 언리얼
  • 순천만 국가정원
  • 언리얼 엔진 5
  • 이재용 어묵
  • 파이널에디션
  • 상속
  • 비전공자를 위한 이해할 수 있는 IT 지식

최근 댓글

최근 글

hELLO · Designed By 정상우.
진호진호
공부/Java

다형성 Polymorphism

공부/Java

다형성 Polymorphism

2024. 2. 22. 17:46

 

Bird Worm Cat
cry() chirp() croak()

 

↓ 타입이 다른 객체들이 동일한 개념의 행위를 수행할 때, 같은 이름을 부여하고 다르게 행동하게 하는 것이 좋다.

Bird Worm Cat
cry() cry() cry()

 

다형성

타입이 다른 객체가 같은 이름, 다른 행동의 메소드를 사용할 수 있게 하는 동적 바인딩 과정

 

1. 슈퍼클래스에서 상위 개념 정의

public class Animal {
    void cry() {}
}
//abstract class, interface 모두 가능

2. 각 서브클래스에서 재정의/구현

public class Cat extends Animal{
    @Override
    void cry() {
        System.out.println("야옹");
    }
}
public class Sparrow extends Animal{
    @Override
    void cry() {
        System.out.println("짹짹");
    }
}

3. 슈퍼클래스 타입의 참조변수 선언

public class Polymorphism {
    public static void main(String[] args) {
        Animal cat = new Cat();
        Animal sparrow = new Sparrow();

        cat.cry(); //야옹
        sparrow.cry(); //짹짹
    }
}

 

다형성의 장점

클래스 타입에 관계없이 하나의 추상적인 함수 이름을 사용.

새로운 타입의 서브클래스를 추가해도 프로그램 변경이 거의 없다.

public class Polymorphism2 {
	public static void main(String[] args) {

		Animal[] animals = { 
	    	new Cat(),
			new Sparrow(),
	    	new Dodo(), 	// 프로그램에 새로운 서브클래스를
			new Caw()		// 추가하여도
	 	};

	 	for (Animal x : animals) {		// 변경되지
		  	x.cry();					// 않음.
      	}
   	}
}

'공부 > Java' 카테고리의 다른 글

자바 예외 처리, Checked Exception와 Unchecked Exception  (0) 2024.02.27
자바 추상 클래스와 인터페이스  (0) 2024.02.14
자바 상속 - 클래스 타입 변환  (0) 2024.02.14
자바 상속 - super, this 예제  (0) 2024.02.08
  • 다형성
  • 다형성의 장점
'공부/Java' 카테고리의 다른 글
  • 자바 예외 처리, Checked Exception와 Unchecked Exception
  • 자바 추상 클래스와 인터페이스
  • 자바 상속 - 클래스 타입 변환
  • 자바 상속 - super, this 예제
진호진호
진호진호
기록보관소

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.