728x90
반응형
인터페이스
- 내부 모든 메서드는 public abstract로 정의 ( default 제외 )
- 제어자 ( static, private 등) 을 붙여 구체적인 메서드를 가질 수 있음
- 내부 모든 필드는 상수
- 다중 상속
- 클래스와 별도로 구현 객체가 같은 동작을 한다는 것을 보장하기 위해서 사용하는 것이 초첨.
추상클래스
- 하위 클래스들의 공통점을 모아 추상화하여 만든 클래스
- 단일 상속
- 추상이 아닌 일반적인 필드, 메서드 , 생성자를 가질수 있음
- 추상화를 하면서, 중복되는 클래스 멤버들을 통합 및 확장 할 수 있음.
- 클래스 간의 연관 관계를 구축하는 것에 초점을 둔다.
다형성
추상 클래스의 다형성이나, 인터페이스의 다형성이나 둘다 클래스 타입을 통합한다는 취지의 기능으로는 같다.
다만 , 추상 클래스는 논리적으로 관련이 있는 자식 클래스들을 다룬다는 점에서 객체들간의 의미적인 관계로 묶여있다.
언제 사용할까?
추상 클래스
- 상속받을 클래스들의 공통으로 가지는 메소드와 필드가 많아 중복 멤버 통합을 할때
- 상속할 각 객체들의 공통점을 찾아 추상화 시켜놓은 것으로, 상속 관계를 타고 올라가면,
같은 부모 클래스를 상속하며, 부모 클래스가 가진 기능들을 구현 해야 할 때 사용한다.
인터페이스
- 서로 관련성이 없는 클래스들을 묶어 주고 싶을때 ( 동작을 묶어주고 싶을때 ? )
- 다중 상속을 통해 추상화 설계를 해야 할때.
- 클래스와 별도로, 구현 객체가 같은 동작을 한다는 것을 보장 하기 위해서 사용.
728x90
반응형