728x90
오버로딩
- 하나의 클래스에 동일 이름값의 메서드와 생성자들이 존재 하는 것을 말합니다.
- 이때 각 구분은 이름값 + 매개변수 개수 + 매개변수 타입 + 매개변수 순서 등으로 구성된 값이 사용되고 이것이 실질적인 식별자 역할을 합니다.
오버라이딩(재정의)
- 부모 클래스의 멤버 혹은 인터페이스의 멤버를 자식 또는 구현 클래스에서 재정의 하는 것을 말합니다.
- 자식 객체의 참조 값을 부모 타입으로 업 캐스팅 후 부모 메서드를 호출하면 오버라이딩 된 자식 메서드가 동적 바인딩(런타임시 결정)되어 수행이 되는데 이를 통해 다형성을 구현합니다.
this와 super
#this
- 현재 객체를 참조할 수 있습니다.
- 람다의 경우 람다 객체를 사용하는 객체의 값을 참조합니다.
- 주로 매개변수와 필드의 이름이 같을때 필드를 가르키기 위해 사용하며 사용하지 않을 경우 Scope룰에 의해 가장 가까운 쪽인 매개변수를 가르키게 됩니다.
#this()
- 현재 객체의 생성자를 호출합니다.
- 생성자 오버로딩에서 여러 생성자들 중 공통된 부분을 super()를 사용함으로써 중복 코딩을 줄일 수 있습니다.
#super
- 부모 객체를 참조할 수 있습니다.
#super()
- 부모 객체의 생성자를 호출합니다.
- 자식 생성자는 super()를 이용해 조상부터 순차적으로 부모 생성자를 먼저 호출해야합니다. 즉 부모 생성자에서도 그 위의 부모의 생성자를 super()를 통해 호출함으로써 거슬러 올라가 조상까지 호출할 수 있게 됩니다.
'학습(구) > Java(구)' 카테고리의 다른 글
| 중첩 클래스와 중첩 인터페이스 (0) | 2021.03.22 |
|---|---|
| 접근 제한자와 패키지 (0) | 2021.03.22 |
| 클래스와 객체의 멤버 (0) | 2021.03.22 |
| 클래스와 객체 (0) | 2021.03.18 |
| 제어문 (0) | 2021.03.18 |