오버라이딩 : 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것
오버라이딩의 조건
자손클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와
- 이름이 같아야 함
- 매개변수가 같아야 함
- 반환타입이 같아야 함
1. 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
※ 참고 : 접근제어자 넓->좁 : publid, protected, (default), private
2. 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다.
3. 인스턴스메서드를 static 메서드로 또는 그 반대로 변경할 수 없다.
오버로딩 vs 오버라이딩
오버로딩(overloading) : 기존에 없는 새로운 메서드를 정의하는 것(new)
오버라이딩(overriding) : 상속받은 메서드의 내용을 변경하는 것(change, modify)
1
2
3
4
5
6
7
8
9
10
11
|
class Parent {
void parentMethod() {)
}
class Child extends Parent {
void parentMethod() {} //오버라이딩
void parentMethod(int i) {} //오버로딩
void childMethod() {}
void childMethod(int i) {} //오버로딩
}
|
cs |
super
super는 자손 클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조변수
> 상속받은 멤버와 자신의 멤버와 이름이 같을 때 super를 붙여서 구별가능
- 인스턴스 메서드에서만 사용 가능
super()
- this()와 마찬가지로 upsert() 역시 생성자!
- this()는 같은 클래스의 다른 생성자를 호출하는데 사용되지만, supert()는 조상클래스의 생성자를 호출하는데 사용됨
출처 : <자바의 정석>, 남궁 성
'JAVA > JAVA' 카테고리의 다른 글
oracle-java8-installer' has no installation candidate (0) | 2020.09.07 |
---|---|
[자바의 정석] 8. 예외처리(Exception Handling) (0) | 2020.03.30 |
[자바의 정석] 7-1 상속 (0) | 2020.03.12 |
[자바의 정석] 3-5 생성자 (0) | 2020.03.11 |
[자바의 정석] 3-4 오버로딩(overloading) (0) | 2020.03.11 |