IT 정보/Java

[Java] 객체지향 프로그래밍 (3) - 다형성편

개발하는 동그리 2022. 5. 13. 09:45
728x90
반응형

다형성

상위 클래스 타입의 참조변수를 사용해서 하위클래스 객체를 참조할 수 있도록 허용한 것 

한가지 유의할 점은 여기서 참조변수가 사용할 수 있는 멤버의 갯수는 실제 객체의 개수보다 같거나 적어야 한다. 

//참조변수의 다형성 예시

class Gender {
    public void GenderInfo() {
        System.out.println("나는 성별입니다.");
    }
}

class Boy extends Gender {
    @Override
    public void GenderInfo() {
        System.out.println("나는 남자입니다.");
    }
}

class Girl extends Gender {
    @Override
    public void GenderInfo() {
        System.out.println("나는 여자입니다.");
    }
}

public class GenderTest {

    public static void main(String[] args) {
        Gender 성별 = new Gender(); // 객체 타입과 참조변수 타입의 일치
        Boy boy = new Boy(); // 객체 타입과 참조변수 타입의 일치
        Gender girl = new Gir(); // 객체 타입과 참조변수 타입의 불일치

        Gender.GenderInfo();
        boy.GenderInfo();
        girl.GenderInfo();
    }
}

//Output
나는 성별입니다.
나는 남자입니다.
나는 여자입니다.

 

다형성의 장점

  • 코드의 중복을 줄여 보다 편리하고 효과적으로 프로그래밍 할 수 있다.
  • 오버라이딩과 오버로딩 또한 다형성의 예시이다. 
  • 매번 비슷한 메서드명을 만드는 시간을 절약하고, 보일러 플레이트코드(=반복적으로 사용하는 비슷한 코드)를 최소화 할 수 있다.

 

작성중..

728x90
반응형