'인터페이스'에 해당되는 글 1건
-
2014.04.07
[Java] 09. 상속, 추상클래스, 인터페이스
- 인터페이스 (Interface)
-
- 클래스에 필요한 메소드들에 대한 약속.
- 어떤 기능이 있어야한다. 라고만 정하고 그 메소드가 어떻게 돌아가는지는 상관 없음.
- 그저 스펙을 정의.
- 추상클래스 (Abstract class)
-
- 클래스의 용도가 객체 생성 용도로 사용하지 않는 경우에 사용함.
- 클래스의 객체 생성의 용도가 아니라면 변수의 타입으로 선언하는 용도와 상속의 본연의 기능으로 특정한 코드를 하위 클래스로 물려주는 기능을 활용할 때 사용함.
- 객체를 생성하지는 않으나 변수 선언 용도로 사용됨.
- 상속의 고유 기능인 하위 클래스에 같은 데이터와 기능을 가지도록 물려주는 기능
- 상속 (Inheritance)
-
- 특정 클래스를 구성할 때 기존 클래스의 데이터(속성)와 메소드를 상위(부모) 클래스에서 그대로 물려받아서 중복적인 코드를 줄인다는 장점.
- 하나의 변수 타입으로 여러 종류의 객체를 의미하는 추상화된 방식의 프로그램이 가능하게 하는 객체지향 기법
- 인터페이스 vs 추상클래스
-
- 공통점
-
- 추상 메소드를 가진다.
- 객체 생성이 불가능하고 타입으로만 사용됨.
- 차이점
-
- 인터페이스는 스펙이나 원하는 기능을 정의하고자 쓰지만, 추상 클래스는 ‘상속+약간의 강제성이 목적’이다.
- 인터페이스는 상수, 추상 메소드만 존재하지만, 추상클래스는 상속이 원래 목적이므로 실제 변수나 메소드를 그대로 가지고 있다.
- 인터페이스는 부채만 남겨주지만, 추상 클래스는 재산도 남겨준다.
- 인터페이스는 다중 상속(?)도 가능하지만, 추상 클래스는 단일 상속만 가능.
Posted by 믐믐믐믐믐