[JSCode 자바 스터디] 1주차 - 다형성 개념 알아보기
객체 지향 프로그램의 특징(다형성)
👉 다형성
객체 지향에 있어서 다형성(Polymorphism)은 주요 개념으로, 같은 이름의 메서드나 연산자가 다른 클래스에 대해 다른 동작을 하도록 하는 것을 말한다.
- 다형성은 객체 지향 프로그래밍의 상속과 인터페이스 개념을 기반으로 한다.
다형성의 장점
- 부모 클래스 타입으로 자식 클래스 객체를 통일된 방식으로 처리 가능
- 코드의 재사용성, 유연성, 가독성이 향상된다.
다형성의 단점
- 다중 상속을 지원하지 않아 인터페이스 사용 필요
👉 메서드 오버라이딩(Overriding) - @Override
- 메소드 오버라이딩은 상속된 메소드의 내용이 자식 클래스에 맞지 않을 경우, 자식 클래스에서 동일한 메소드를 재정의하는 것을 의미한다.
- 자식 객체에서 오버라이딩하면 부모 객체의 메소드는 숨겨진다.
- 자식 클래스는 부모 클래스의 메서드를 재활용할 수 있고, 독자적인 기능을 추가할 수 있다.
⚠ 규칙에 주의 ⚠
부모의 메소드와 동일한 시그니처(리턴 타입, 이름, 매개변수 리스트)를 가져야 한다.
접근 제한을 더 강하게 오버라이딩할 수 없다.
새로운 예외를 throws할 수 없다.
👉 메서드 오버로딩(Overloading)
- 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것을 메소드 오버로딩이라고 한다.
- 메소드 오버로딩의 조건은 매개변수의 타입, 개수, 순서 중 하나가 달라야 한다.
- 리턴 타입은 무관하다.
This post is licensed under CC BY 4.0 by the author.