TIL_180420 Abstract, Final
Abstract
상속해서 사용하도록 강제하는 것. 즉, 부모 클래스에는 메소드의 시그니처만 정의해놓고 그 메소드의 실제 동작 방법은 이 메소드를 상속 받은 하위 클래스의 책임으로 위임
- abstract 클래스일 경우 반드시 상속하여(extends) 사용해야함
- abstract 클래스가 abstract메소드를 포함할 경우, 상속하는 클래스(사용하는쪽)에서 해당 메소드의 구체적 로직을 오버라이딩하여 사용해야함
- 따라서 abstract클래스 속 abstract 메소드는 로직을 작성하는 {} 문구가 없음
- 멤버들(변수, 메소드) 중 하나라도 abstract가 있다면 그 클래스는 abstract 클래스임
|
|
Final
추상이 상속을 강제하는 것이라면 final은 상속/변경을 금지하는 규제.
- 변수: 바뀌지 않는 상수 지정과 같은 경우에 쓰임
- 메소드: 오버라이딩 금지를 위해 사용
- 클래스: 상속 금지