본문 바로가기
방통대/Java

5-2 다형성

by 꿈꾸는 몽나 2024. 3. 22.
728x90

1. 다형성이란

: 유사하지만 다양한 형상이나 다양한 기능을 가진다는 뜻

-> 한 부모에서 나온 두 자식 객체는 비슷하지만 다름

-> 하나의 클래스에서 오버로딩된 메소드들은 유사하지만 조금씩 다른 기능을 수행함

-> 자식 클래스에서 재정의된 메소드는 부모의 것과 유사하지만 다른 기능을 수행함

 

 

 

2. 다형성과 형변환

: 형 변환

-> 상속 관계에 있는 클래스 간에는 타입 변환이 가능함

*전혀 다른 두 클래스 간에는 타입 변환이 금지됨

-> 자식(하위) 클래스에서 부모(상위) 클래스로의 형 변환은 문제없음

*업캐스팅이라 하며 자동으로 형 변환 가능함

* 참조형 변수는 같은 유형 또는 자식 유형의 객체를 참조할 수 있음

ex) Animal animal = (Animal) new Dog(); // 하위 객체 참조

 

: 다형성의 활동 효과

-> 코드의 유연성과 재사용성

-> 동적 바인딩을 통해 실제 유형을 명시적으로 다룰 필요가 없음

 

 

 

3. 다형성과 오버라이딩

: 클래스의 다형성

-> 부모 클래스로부터 상속받은 메소드를 자식 클래스에서 오버라이딩할 수 있음

-> 부모와 자식에서 같은 이름의 메소드가 다른 기능을 수행

*메소드 이름, 매개 변수, 반환형은 같으나 몸체의 구현이 다름

-> 서로 다른 자식 간에도 같은 이름의 메소드가 다른 기능을 수행

 

: 인터페이스의 다형성

-> 자식 클래스들에서 상위 인터페이스의 메소드를 다르게 구현함

 

 

 

 

4. 클래스 상속과 다형성

 

예제1)

 

 

예제 2)

728x90

'방통대 > Java' 카테고리의 다른 글

5-4 익명 클래스  (0) 2024.03.22
5-3 열거 자료형  (0) 2024.03.22
5-1 추상 클래스와 인터페이스  (0) 2024.03.22
4강. Java - 클래스와 상속(2)  (0) 2024.03.15
4-2 상속  (0) 2024.03.15