Java
자바의 정석 [Ch.07] 4
eunjineee
2024. 1. 24. 08:17
동적 바인딩 ( 다형성 )
- 부모의 레퍼런스로 자식 객체를 접근하는 방식
- 자식은 접근은 가능하지만, 사용할 수 있는 범위는 본인이 알고있는 범위까지만 인식가능
- 최상위(가장 바깥의 본인 클래스에서 가지고 있는 함수만 쓸수있음)
final
- class : 상속 금지
- method : 오버라이딩 금지
- field : 상수화 (항상 static 같이 사용) ( 읽기 전용 )
참고 코드
class Halbe{
int a;
public int getA() {
return 1;
}
public void setA(int a) {
this.a = a;
}
}
class Abe extends Halbe{
int a;
public int getA() {
return 2;
}
public void setA(int a) {
this.a = a;
}
}
class Me extends Abe{
int a;
public int getA() {
return 3;
}
public void setA(int a) {
this.a = a;
}
}
public class DynamicClass {
public static void main(String[] args) {
Halbe hal = new Halbe();
Abe abe = new Abe();
Me me = new Me();
System.out.println(hal.getA());
System.out.println(abe.getA());
System.out.println(me.getA());
Halbe h;
h = abe; // 동적 바인딩
System.out.println(h.getA()); //>>> 2
h = me; // 동적 바인딩
System.out.println(h.getA()); //>>> 3
}
}
인터페이스 interface
- 완전추상형
- 상수, 추상 메소드
- 다중상속을 대체
- Implements 사용해서 표현
- 여러개를 줄 수 있다
- interface끼리는 다중 상속, 단일 상속이 가능하다
- [메뉴판]
**상수는 대문자로만 사용함 final static int MAX = 99