가자미의 개발이야기
자바 메소드 오버라이딩 본문
a. 오버라이딩
상속을 받은 자식 클래스에 부모 클래스에 있는 메소드를 같은 이름으로 다시 정의하고 있다면
자식 인스턴스로 생성된 참조변수는 부모던 자식이건 간에 부모클래스는 가려지고 자식 클래스가 호출되곤 한다.
하지만 부모 인스턴스로 생성된 부모 인스턴스는 부모 메소드가 볼 수 있다.
이렇게 외부로는 호출할 수 없는 메소드를 인스턴스 내부에서 부를 수 있을까?
바로 해당 메소드 안에 super.해당메소드이름(); 를 넣어줘서 부모 클래스의 메소드를 자식 클래스에서 부를 수 있다.
하지만 인스턴스 변수는 오버라이딩 되지 않는다!
b. 오버라이딩의 조건
- 선언부가 조상 클래스의 메서드와 일치해야 한다.
- 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
- 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.
'Java > 자바 기본 문법' 카테고리의 다른 글
자바 상속의 목적 (0) | 2021.01.07 |
---|---|
자바 instance of 연산자 (0) | 2021.01.07 |
자바 스태틱(클래스변수(메소드))와 상속 클래스의 주의점 (0) | 2021.01.07 |
자바의 포함, 상속, 상속 생성자 (0) | 2021.01.07 |
자바의 배열 (0) | 2021.01.07 |