코딩항해기
[JAVA] 다형성 본문
다형성 polymorphism
하나의 것이 여러 형태를 가질 수 있는 성질
오버로딩, 오버라이딩, 업캐스팅, 다운캐스팅,
인터페이스, 추상메소드, 추상클래스 등이 있다.
다형성 (polymorphism)
하나의 것이 여러 형태를 가질 수 있는 성질을 의미한다.
컴파일 형성 다형성
오버로딩(Overloading)이 이에 속한다.
런타임 다형성
오버라이딩(Overriding), 추상메소드, 추상클래스(Abstract), 인터페이스(Interface)가 이에 속한다.
오버라이딩
부모클래스에서 정의한 메소드를 자식클래스에서 수정해서 사용하고 싶을 때 하게 되며,
동적바인딩이 일어나게 하여 다형성을 실현시킬 수 있다.
이 때 메서드 시그니쳐(반환타입, 메소드명, 매개변수)는 변경할 수 없으며, 구현부(기능)만 변경 가능하다.
*동적바인딩 : 똑같은 메서드를 수행시키더라도 메서드 수행 주체가 어떤 객체인지에 따라 다른 메서드(오버라이딩된 메서드)가 수행되는 것
참조변수 다형성
업캐스팅(Upcasting), 다운캐스팅(Downcasting)이 이에 속한다.
오버로딩과 오버라이딩의 차이
오버로딩 : 메소드, 생성자에서 가능하다. 상속과는 무관하다.
오버라이딩 : 상속관계의 자식 클래스에서 부모 메소드를 불러 올때만 가능하다.
'JAVA' 카테고리의 다른 글
[JAVA] 인터페이스 (+Adapter, 마커인터페이스) (0) | 2024.07.13 |
---|---|
[JAVA] 자바 프로그래밍의 기초 (0) | 2024.07.12 |
[JAVA] Up casting, Down casting (0) | 2024.07.04 |
[JAVA] 자바의 Call by Value, Call by Reference (0) | 2024.07.03 |
[JAVA] 메소드 / 메서드 (0) | 2024.07.03 |