티스토리 뷰
super
인스턴스의 주소를 저장하는 참조변수
- this는 자신의 인스턴스 주소 저장, super는 부모의 인스턴스 저장
- 서브클래스에서 슈퍼클래스의 은닉된 멤버에 접근할 수 있다.
1. 변수명만 지정했을 경우
현재 선언된 메서드 내에서 먼저 탐색 > 자신의 멤버변수에서 탐색 > 부모의 멤버변수에서 탐색
2. this.변수명을 지정했을 경우
자신의 멤버변수에서 탐색 > 부모의 멤버변수에서 탐색
3. super.변수명을 지정했을 경우
부모의 멤버변수에서 탐색
class 할아버지 {
String name2 = "할아버지";
}
class 아버지 extends 할아버지 {
String name = "아버지";
}
class 나 extends 아버지 {
String name = "나";
public void method() {
String name2 = "로컬";
System.out.println(name2); // 로컬
System.out.println(this.name2); // 할아버지
System.out.println(super.name2);// 할아버지
}
}
final
클래스, 메서드, 멤버변수에 지정 가능한 final 키워드
- final 멤버변수 : 상수 취급, 변수값 변경 불가 (ex 원주율 값 등)
- final 메서드 : 메서드 변경 불가, 오버라이딩 금지(오버로딩은 가능!)
- final 클래스 : 상속 금지, 포함은 가능! (ex String 클래스, Math 클래스)
댓글