멤버변수 이름앞에 명시
: 부모 클래스의 멤버변수를 의미한다.
하지만 부모클래스의 멤버변수는 이미 모두 상속되어있기 때문에, 이 경우 에는 this 키워드를 사용하는 것과 동일한 결과이기에 잘 사용하지 않는다.
메서드 이름앞에 명시하는 경우
: 부모 클래스의 메서드를 의미
키워드 자체를 메서드처럼 사용
: 부모 클래스의 생성자를 의미한다.
어노테이션(Annotation)
메서드 재정의 과정에서 오타가 발생한 경우
부모클래스의 say() 메서드를 재정의하는 과정에서 개발자의 실수로 인해 "sai()" 라고 메서드가 추가되었다면 Java는 새로운 메서드를 추가한 것으로 인식하고, 특별한 에러표시 하지 않는다.
메서드 재정의 과정에서의 오타방지옵션
@Override는 이 키워드가 명시된 위치 아래에 정의되는 메서드가 부모클래스에 존재하지 않을 경우 구문을 애러 처리한다.
부모클래스의 메서드를 재정의 하고자 할 경우
의도치 않은 실수를 예방하기 위한 '오타 방지 옵션' 이다.
여러 개의 메서드를 재정의 한다면 재정의 되는 모든 메서드들 위에 각기 명시해야 한다.
파라미터의 데이터형이 서로 다르기 때문에 -> O
public void plus(int a){
}
public void plus(boolean a){
}
파라미터 개수가 서로다르기 때문에 -> O
public void user(int a){
}
public void user(int a, int b){
}
데이터형의 전달순서가 서로다르기 때문에 -> O
public void user(int a, boolean b){
}
public void user(boolean a, int b){
}
오버로드 성립 불가
public void user(int a){
}
public void user(int b){
}
this 키워드의 용법
this 키워드를 사용하여 생성자 Overload를 간결하게 처리하기