본문 바로가기
it 공부/Java

다형성 메소드 오버로딩 실습

by blancfleur 2021. 8. 14.

1. 다형성 메소드 오버로딩을 이용한 동물 클래스 실습하기.

동물의 기본 특징이 있는 애니멀 클래스 하나를 만들고, 그 특징을 상속을 받는 pig 클래스를 만든다.. 

그리고 특징이 다른 부분을 메소드로 만든다. 물의 울음은 저마다 다르기 때문에 부모 클래스인 애니멀을 오버로딩 하여 자녀 고양이 클래스와 강아지 클래스를 만들어 각각 동물에 맞게 메소드를 재정의해준다. 

 


-메소드 오버라이딩(Method Overriding)
 상속관계 (확장, extends) 있는 클래스에서 수퍼 클래스(부모 타입에 있는)메소드를 서브 (자녀 타입) 클래스에서 재정의(최종정의)한다.

-선언은 동일하고, 기능만 다르게 구현한다.  
-메소드 오버라이딩은 동일 형태: 리턴타입, 메소드명, 파라미터가 동일(타입, 갯수, 순서 일치)해야한다.
 


메인 클래스에서 동물들을 출력한다. 


2. 다형성 사용하는 이유.

다형성을 사용하면 메소드의 코드 중복이 없어지고 간단하게 작성할 수 있다.

 

static void sound (Animal animal ) {
if(animal instanceof Dog) {
((Dog)animal).sound();
}
if(animal instanceof Pig) {
((Pig)animal).sound();
}

 

하지만 다형성을 이용하지 않으면 동들의 사운드를 알려면 메소드를 늘 클래스에 추가해야하고 코드가 길어지고, 중복코드가 많아진다. 

 

static void sound (Dog dog) {
dog.sound();

 

static void sound (Pig pig) {
pig.sound();

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

인터페이스 (interface )실습 - (1)  (0) 2021.08.14
추상 클래스 (abstract class)실습  (0) 2021.08.14
다형성을 사용한 상속(extends) 실습  (0) 2021.08.14
다형성이란?  (0) 2021.08.14
인터페이스 - 실습(1)  (0) 2021.08.14