코딩항해기

[JAVA] 다형성 본문

JAVA

[JAVA] 다형성

miniBcake 2024. 7. 7. 15:23

 

다형성 polymorphism

하나의 것이 여러 형태를 가질 수 있는 성질
 
오버로딩, 오버라이딩, 업캐스팅, 다운캐스팅,
인터페이스, 추상메소드, 추상클래스 등이 있다.


 

 

다형성 (polymorphism)

하나의 것이 여러 형태를 가질 수 있는 성질을 의미한다.


컴파일 형성 다형성

오버로딩(Overloading)이 이에 속한다.

 

 

[JAVA] 오버로딩 (Overloading), this, this()

오버로딩 (Overloading)다형성 중 하나로,오버로딩(메소드 오버로딩, 생성자 오버로딩), 오버라이딩(재정의), 참조변수의 다형성이 다형성에 속한다. 그 중 오늘은  Overloading과생성자 오버라이딩

minibcake.tistory.com

 

 

런타임 다형성

오버라이딩(Overriding), 추상메소드, 추상클래스(Abstract), 인터페이스(Interface)가 이에 속한다.
 

오버라이딩

부모클래스에서 정의한 메소드를 자식클래스에서 수정해서 사용하고 싶을 때 하게 되며,
동적바인딩이 일어나게 하여 다형성을 실현시킬 수 있다.
이 때 메서드 시그니쳐(반환타입, 메소드명, 매개변수)는 변경할 수 없으며, 구현부(기능)만 변경 가능하다.
 
*동적바인딩 : 똑같은 메서드를 수행시키더라도 메서드 수행 주체가 어떤 객체인지에 따라 다른 메서드(오버라이딩된 메서드)가 수행되는 것

 

 

[JAVA] 인터페이스 (+Adapter, 마커인터페이스)

인터페이스 일종의 추상클래스지만 클래스라고 부르지 않으며, 추상화 정도가 높다.관련 키워드로는 다중상속, 모호성, Adapter, 마커인터페이스 등이 있다.   [요약]다중상속java는 다중상속을

minibcake.tistory.com

 

 

[JAVA] 추상클래스, 추상메소드

추상클래스 abstract class클래스를 구성하는 멤버 중 추상 메소드가 존재한다.(추상클래스 안에 일반클래스도 함께 선언 가능)추상 메소드가 한 개 이상 있는 클래스는 반드시 추상 클래스로 선언

minibcake.tistory.com

 


 

참조변수 다형성

업캐스팅(Upcasting), 다운캐스팅(Downcasting)이 이에 속한다.

 

 

[JAVA] 상속 (+super, super())

상속 (Inheritance)기존에 선언된 클래스의 멤버(생성자는 제외)를 새롭게 만들 클래스에서 사용하고 싶을 때, 상속을 받아 새로운 기능만 추가 할 수 있도록 해준다. 여러 클래스 선언 시 멤버가

minibcake.tistory.com

 

 

[JAVA] Up casting, Down casting

Up casting상속 관계인 자식의 값을 부모 타입으로 형변환 (자동형변환) 부모 클래스에 있는 변수나 메소드만 사용할 수 있다. ex) 부모타입 a = new 자식생성자(); Down casting업캐스팅된 객체를 다시

minibcake.tistory.com

 


 
오버로딩과 오버라이딩의 차이

오버로딩 : 메소드, 생성자에서 가능하다. 상속과는 무관하다.
오버라이딩 : 상속관계의 자식 클래스에서 부모 메소드를 불러 올때만 가능하다.