오버라이딩이란?
- 덮어쓰다
: 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것
오버라이딩의 조건
자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와
- 이름이 같아야 한다.
- 매개변수가 같아야 한다.
- 반환타입이 같아야 한다.
접근제어자와 예외는
- 접근제어자는 조상 클래스의 메서드보다 좁은 범위로 변경 할 수 없다.
- 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다.
- 인스턴스메서드를 static메서드로 또는 그 반대로 변경할 수 없다.
* 접근제어자 접근범위 순
public, protected, (default), private
오버로딩 vs 오버라이딩
오버로딩 | 기존에 없는 새로운 메서드를 정의하는 것 |
오버라이딩 | 상속받은 메서드의 내용을 변경하는 것 |
super
: 자손 클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조변수
* 조상의 멤버와 자신의 멤버를 구별하는데 사용된다는 점을 제외하고는 super 와 this는 근본적으로 같다.
* super역시 static메서드에서는 사용할 수 없고, 인스턴스메서드에서만 사용 가능
super() - 조상 클래스의 생성자
super() 역시 생성자이다.
this()는 같은 클래스의 다른 생성자를 호출하는데 사용
super() 는 조상 클래스의 생성자를 호출하는데 사용
Object클래스를 제외한 모든 클래스의 생성자 첫 줄에 생성자, this() 또는 super(),를 호출해야 함.
그렇지 않으면 'super();'를 생성자의 첫 줄에 삽입한다.
1. 클래스 - 어떤 클래스의 인스턴스를 생성할 것인가?
2. 생성자 - 선택한 클래스의 어떤 생성자를 이용해서 인스턴스를 생성할 것인가?
* 조상 클래스의 멤버변수는 조상의 생성자에 의해 초기화되도록 해야 한다.
'Language > java' 카테고리의 다른 글
Java_Study 객체지향 프로그래밍_제어자(modifier) (0) | 2022.07.06 |
---|---|
Java_Study 객체지향 프로그래밍 (패키지) (0) | 2022.07.04 |
Java_Study 객체지향 프로그래밍 (상속) (0) | 2022.07.03 |
Java_Study 객체지향 프로그래밍 (변수의 초기화) (0) | 2022.07.01 |
Java_Study 객체지향 프로그래밍 (생성자) (0) | 2022.07.01 |
댓글