2023. 10. 7. 02:23ㆍJava언어 공부
상속과 객체 참조변수
보통 상속 관계에서는 상위 타입을 이용하여 객체를 처리한다.
가끔 상위 타입 변수에 유지한 객체를 원래 타입으로 변환해야 할 필요가 있다.
타입 변환 과정에서 오류가 발생할 수 있다.
instanceof 연산자를 사용하여 해결할 수 있다.
x instanceof X : x가 실제 가리키는 타입을 X 타입 변수에 유지할 수 있으면 true가 된다.
( x가 Null이면 false이며 X가 Object면 항상 true이다 )
자바 16 이후부터는, X 뒤에 이름을 붙여 바로 초기화를 할 수 있게 했다.
if (obj instance of String s && s.length() > 5)
{
s.contains(..)
}
메소드 바인딩
호출문과 호출 함수를 묶는 것이다.
이른 바인딩 (Early Binding) : 컴파일에 연결하는 것
늦은 바인딩 (Late Binding) : 실행시간에 연결하는 것
final로 수식하면 이른 바인딩을 해줄 수 있음
그 이외에 abstract로 정의하거나 abstract를 상속하면 늦은 바인딩이다.
상속의 구현
메소드
- 부모 클래스의 메소드를 상속 받음
- 부모 클래스의 메소드를 재정의함
- 부모 클래스에 없는 새 메소드를 정의한다.
private는 상속되지 않는다.
부모에 정의된 메소드를 호출해야 할 때 키워드 super을 사용한다.
super.super과 같이 조상격 메소드를 호출할 수 없다.
재정의 규칙
1. 매개 변수 타입은 정확하게 일치해야 한다.
2. 반환 타입은 더 특수한 타입을 사용할 수 있다.
3. 메소드의 접근 권한은 완화할 수 있어도 강화할 수는 없다.
4. 공표하는 checked 예외 집합은 부모가 공표하는 checked 예외의 부분 집합이어야 한다.
멤버 변수
1. 부모 클래스의 멤버 변수를 상속 받는다.
2. 새 멤버 변수를 정의한다.
상속을 이용하면서 똑같은 이름의 변수를 생성할 수 있지만, 그렇게 하는 것은 바람직하지 않다.
'Java언어 공부' 카테고리의 다른 글
[Java] 14. 조건문과 반복문 (1) (0) | 2023.10.09 |
---|---|
[Java-FX] 3. Java FX 레이아웃 및 사건 기반 프로그래밍 (1) (0) | 2023.10.08 |
[Java-FX] 2. Java FX와 도형 그리기 (2) (0) | 2023.10.01 |
[Java] 13. 자바의 원시 타입 (1) (0) | 2023.09.28 |
[Java] 9. 상속과 구체화 (1) (0) | 2023.09.26 |