관리 메뉴

공부한것들을 정리하는 블로그 입니다.

추상클래스와 인터페이스 본문

JAVA/공부

추상클래스와 인터페이스

호 두 2018. 11. 10. 21:25
반응형

추상클래스와 인터페이스의 차이

공통점
추상 메소드를 1개이상 가지고 있다.

차이점
인터페이스는 인스턴스 변수를 가질 수 없다.


추상클래스
- 미완성 설계도에 비유
- 추상메소드를 포함하고 있다는 것을 제외하고는 일반클래스와 같다.
- 추상메소드를 1개이상 포함하는 클래스는 반드시 추상클래스여야 한다.
- 추상메소드가 0개여도 추상클래스로 지정할 수 있다.
- 인터페이스를 상속받은 구현체가 메소드들 중 일부만 구현할 경우, 클래스 앞에 abstract를 붙여야만 함(추상클래스)

- 인스턴스(객체)를 만들 수 없는 클래스이다.
- 상속을 통해서 하위클래스에 의해서만 완성된다.
- 하위클래스에서 메소드의 구현을 강제해야 한다.(재사용과 확장)
- 객체지향의 상속은 재사용과 확장의 개념 (상위클래스로 갈수록 추상화)


추상클래스 상속
- 다중 상속이 불가능
- 상속하는 집합간에는 연관관계가 있다

추상클래스 구현
- extends
- 상속이므로 하위클래스 is a kind of 상위클래스 관계
- 자신의 기능들을 하위클래스로 확장 ex) 강아지/고양이-동물 => 울음소리()




인터페이스
- 구현된것이 전혀없이 밑그림만 있는 설계도에 비유
- 추상메소드의 집합이며 일종의 추상클래스이다.
- 오직 추상메소드와 상수만을 멤버로 가질 수 있다.
- 모든 멤버변수는 public static final 이어야 하며, 이를 생략할 수 있다.
- 모든 메소드는 public abstract이 이어야 하며(선언부o, 구현부x), 이를 생략할 수 있다.
- 단, java8 부터는 static, default 메소드를 사용 가능하다.

인터페이스 상속
- 인터페이스의 부모는 인터페이스만 가능
- 다중상속이 가능
- 상속하는 집합간에는 연관관계가 존재하지 않을 수 있다.

인터페이스 구현
- implements
- 구현클래스 is able to 인터페이스 관계
- 인터페이스에 정의된 메소드를 각 클래스의 목적에 맞게 기능을 구현하도록 함 ex) JDBC




참고 : https://jeong-pro.tistory.com/m/82






반응형
Comments