언어/Java

다형성 (Ploymorphism)

린예라 2023. 9. 12. 22:45

다형성이란 하나의 객체가 여러가지 타입을 가질 수 있는것을 의미한다. 혹은 같은 이름의 클래스나 메소드가 여러가지 타입의 데이터를 대입하여 다양한 결과를 얻어낼 수 있는 성질을 의미한다.

자바에서 다형성을 표현하는 기능으로는,

 

1.부모클래스의 메소드를 재정의 하는 오버라이딩(Overriding)

2.같은 이름의 메소드가 매개변수의 타입이나 갯수가 다를 경우 각각 다른 메소드로 취급하는 오버로딩(Overloading)

3.다양한 형변환 (타입 캐스팅)

4.부모클래스 타입의 참조변수로 자식클래스 타입의 인스턴스를 참조

 

보통 다형성은 클래스간의 상속관계 사이에서나타난다.

 

다음은 참조변수의 다형성을 나타내는 코드이다.

Animal 클래스와 Animal 클래스를 상속받는 People 클래스
객체 타입이 Animal인 animal 객체가 People의 타입을 가짐
하지만 반대로 people 객체는 Animal의 타입을 가질 수 없음