자바에서는 Object Oriented Programming의 특징 중에 하나인 다형성(Polymorphism)을 지원하는 방법으로 메소드 오버로딩과 오버라이딩을 지원한다. (물론 다른 언어들도...)
Overloading
- 같은 이름의 메소드를 여러 개 가지면서 매개변수의 유형과 개수가 달라서, 메모리에 같은 이름의 메소드가 여러 개 로딩되는 형태
- 메소드 오버로딩, 생성자 오버로딩
Overriding
- 상속에서 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의하여 사용.
- 부모 객체의 메소드는 숨겨지기 때문에, 자식 객체에서 메소드를 호출하면 오버라이딩된 자식 메소드가 호출
- 접근 제한을 더 강하게 오버라이딩 할 수 없음
'Java' 카테고리의 다른 글
Why can't a top level class be static in Java? (0) | 2019.10.04 |
---|---|
[Java] Collection framework (0) | 2019.08.29 |
[Java] 추상 클래스(abstract class)와 인터페이스(interface) (0) | 2019.08.29 |
[Java] 상속 (inheritance) 정의 / final 클래스와 메소드 / instanceof 연산자 (0) | 2019.08.28 |
[Java] 클래스: 구성 멤버 / final / 접근제한자(access modifier) (0) | 2019.08.27 |