- 추상 클래스와 인터페이스의 차이
추상 클래스는 내부에 정의된 메소드와 추상 메소드의 혼합된 사용이 가능. 또한 상수의 정의도 가능. 일반 클래스의 상속과 같이 extends 키워드 사용.

인터페이스는 내부에 모두 추상 메소드와 상수만 존재해야 함. 정의된 메소드를 품을 경우, 에러 처리. 클래스와 달리 implements 키워드를 통해 사용.

인터페이스를 이용해 '다중 상속'의 활용 가능(실제 다중 상속은 아니며, 흉내내는 기능의 수행) -> 인터페이스는 개수의 제한 없이 implements 가능. 만약 서로 다른 인터페이스를 사용하는데 같은 추상 메소드 명이 존재한다면, 사용하는 클래스에서 하나의 메소드로 정의가 가능 !

추상 클래스와 인터페이스 모두 구체적 메소드의 정의 이전에 설계의 목적이 강하지만, 인터페이스의 경우 앞서 언급한 것과 같이 정의된 메소드를 애초에 담을 수 없기 때문에 추상 클래스보다 '설계'의 의미를 더 강하게 지님. 따라서 인터페이스를 통한 설계가 많이 선호되는 편.

- final 키워드
final 키워드는 '최종적으로 규정'한다는 의미를 지님.
변수에 final을 붙일 시, 변수를 상수화하여 더 이상 수정이 불가능한 메모리 공간으로 만든다는 것
메소드에 final을 붙일 시, 더 이상 overriding이 불가능한 메소드로 규정해주는 것
클래스에 final을 붙일 시, 상속이 불가능한 하나의 독립적인 클래스로 규정해주는 것


'Software Convergence > Java' 카테고리의 다른 글

static과 접근제한자  (0) 2018.10.19
상속의 단점과 Strategy Pattern  (0) 2018.09.03
Generic 자료형 실습  (0) 2018.07.12
instanceof / encapsulation  (0) 2018.07.04
다형성(Polymorphism) / Object 클래스  (0) 2018.07.03

+ Recent posts