final 뜻 그대로 마지막의, 변경 될 수 없는 예약어다.
final 변수 : 값이 변경 될 수 없는 상수. 단 한번만 값을 대입할 수 있다.
final 메서드 : overriding(오버라이딩) 불가.
final 클래스 : 상속 불가(Super class가 될 수 없다.)
* final 문자열에 + 연산 시 새로운 문자열이 만들어진다.
abstract 는 미완성의, 추상의 라는 뜻으로, 의미만 있는 기능이 완성되기 전의 상태를 뜻한다.
abstract 메서드 : 바디( {}블럭 )가 없는 추상 메서드
abstract 클래스 : 추상 메서드가 선언되어 있는 클래스
-> 객체 생성 불가, 일반 클래스에서 상속받아 오버라이딩(기능을 완성)해서 사용한다.
클래스가 일반 클래스를 상속 받을 때는 오버라이딩을 하지 않아도 되지만.
추상 클래스를 상속 받을 때는 무조건 오버라이딩을 해야 한다.
interface - 상수와 추상메서드만 가지고 있는 클래스
- class와 동급으로 보면된다. (굳이 따지자면 class > abstract class > interface)
- 변수를 써도 상수가 되며, 메서드를 써도 추상 메서드가 된다.
- 객체 생성이 불가능하다. 일반 클래스에서 구현해서 사용한다.
-> 구현할 클래스명 옆에 implements 인터페이스명 으로 명시하며 상속 + 오버라이딩 개념이다.
- 다중 구현이 가능하다. (다형성)
- super가 없다.
- interface간의 다중 상속도 가능하다.
- 상속과 구현을 동시에 할 수 있다.
'JAVA' 카테고리의 다른 글
Java Class Math, Wrapper, 참조형형변환 (0) | 2021.12.06 |
---|---|
Java ArrayList, String(문자열) 비교 (0) | 2021.12.06 |
Java 상속, 오버라이딩, 업캐스팅, 다운캐스팅, Object클래스 (0) | 2021.12.02 |
Java 배열, 랜덤 (0) | 2021.11.30 |
Java 오버로딩, 접근제어자, 캡슐화, 싱글턴 (0) | 2021.11.30 |