- 객체 지향을 확장하기 위해 사용하는 키워드와 개념 정리
abstract - 추상 메서드와 추상 클래스
- 추상 메서드는 선언부만 있고 구현부가 없는 메서드
- 추상 메서드를 하나라도 가지고 있다면 추상 클래스로 선언해야 함
- 추상 클래스는 인스턴스, 즉 객체를 만들 수 없다(new 사용 불가)
- 추상 메서드는 하위 클래스에 메서드의 구현을 강제한다(오버라이딩 강제)
생성자
- 클래스의 인스턴서, 즉 객체를 만들 때마다 new 키워드를 사용한다
동물 뽀로로 = new 동물();
- new 클래스명()의 클래스명()는 객체 생성자 메서드(생성자)이다
- 자바는 인자가 없는 기본 생성자를 자동으로 만든다
- 인자가 있는 생성자를 하나라도 만든다면 자바는 기본 생성자를 만들지 않는다
클래스 생성 시의 실행 블록, static 블록
- 클래스 생성자는 존재하지 않지만 클래스가 스태틱 영역에 배치될 때 실행되는 코드 블록이 있다
- 해당 패키지 또는 클래스가 처음으로 사용될 때 스태틱 영역에 로딩되며 스태틱 블록은 로딩될 때 단 한번만 실행된다
final
- final 키워드는 클래스, 변수, 메서드에서 사용된다
- 클래스에 final이 붙을 경우 상속을 허용하지 않기 때문에 하위 클래스를 만들 수 없다
- 변수에 final이 붙을 경우 변경 불가능한 상수가 된다
- 메서드에 final이 붙을 경우 재정의 즉 오버라이딩을 금지하게 된다
instanceOf
- 만들어진 객체가 특정 클래스의 인스턴스인지 물어보는 연산자
- 결과로 true 혹은 false를 반납한다
package
interface와 implements
this 와 super
- 객체가 멤버 메서드 내부에서 객체 자신을 지칭하는 키워드
- 바로 위 상위 클래스의 인스턴스를 지칭하는 키워드