//출력
볼륨 크기 : 0
베이스의 크기 0
super 키워드를 넣으면 원래기능도 함께 할 수 있다.
@override
주해(annotation)를 사용하면 컴파일러에게 수퍼 클래스의 메소드를 오버라이드 하려고 한다는 것을 알려줄 수 있다.
만약 컴파일러가 수퍼 클래스에 그러한 메소드가 존재하지 않는다는 것을 감지하면 오류를 알려준다
만약에 ShowCurrentState()라고 오타를 내면 오버라이딩이 아니라 새로운 메서드가 생성되어버리는데,
ShowCurrentState()가 존재하지 않아서 문제 있다고 알려준다. ㄳㄳ
오버라이딩의 조건
1. 선언부가 같아야 한다.(이름, 매개변수, 리턴타입)
2. 접근제어자를 좁은 범위로 변경할 수 없다.
- 조상의 메서드가 protected라면, 범위가 같거나 넓은 protected나 public으로 만 변경할 수 있다.
ex) BaseEnSpeaker에서 클래스에서 Private void showCurrentState()로 생성불가
(조상메서드는 default이므로)
3. 조상클래스의 메서드보다 많은 수의 예외를 선언할 수 없다.
오버로딩과 오버라이딩
오버로딩 : 기존에 없는 새로운 메서드를 정의하는 것 (New)
오버라이딩 : 상속받은 메서드의 내용을 변경하는 것 (Change, Modify)
'JAVA > basic' 카테고리의 다른 글
예외처리 / try-catch-finally (0) | 2020.10.21 |
---|---|
인터페이스 / interface / implements (0) | 2020.10.20 |
추상클래스 / abstract class (0) | 2020.10.20 |
상속 / extends (0) | 2020.10.15 |
[Singleton] 싱글톤 / 싱글턴 패턴 (0) | 2020.10.15 |
getter / setter (0) | 2020.10.15 |
접근제어 [ private / public / protected / default ] (0) | 2020.10.15 |