프로그래밍 /JAVA
[JAVA] 인터페이스 & 추상클래스 차이점!!
S.ONg.c
2017. 12. 12. 18:52
추상클래스(abstract)란!!
클래스가 설계도 라면 추상클래스는 '미완성 설계도'
추상메서드 (미완성메서드)를 포함하고 있는 클래스
*.* 추상메서드 : 선언부만 있고 구현부( 몸통, body) 가 없는 클래스
꼭 필요하지만 자손마다 다르게 구현 될 것으로 예상되는 경우에 사용
추상 클래스를 상속받는 자손 클래스에서 추상메서드의 구현부를 완성
인터페이스(Interface)란!!
일종의 추상클래스. 추상클래스(미완성 설계도) 보다 추상화가 높다.
실제 구현된 것이 전혀없는 기본설계도(알맹이 없는 껍데기)
인스턴스를 생성할 수 없고 클래스 작성에 도움을 줄 목적으로 사용된다.
class 대신 interface 를 사용할 뿐 클래스를 상속받는것과 같다
차이점!!!!
->추상클래스(abstract)
추상메서드(abstract method)가 하나라도 존재하는 클래스.
추상화 시킬 때만 사용하면 된다.
(is-a관계)
(공통점을 찾아서 추상화시켜서 사용하는 것)
클래스 임으로 단일상속(다중상속 불가)
=>상속을 받아서 기능을 확장시키는 목적, (상속)
구현 할때 extends 상속
->인터페이스(Interface) 진정 완전한 껍데기
interfaces는 구현하는 모든 클래스에 특정한 메서드가 반드시 존재하게 하는 강제적인 역할
.-.구현 객체가 동작을 한다는 것을 보장 목적
(has a) 관계 즉 다중상속 가능
implements 상속
(인터페이스는 상관없는 클래스를 연결 해주는 중간 역할이라고 생각하자)