공부한것들을 정리하는 블로그 입니다.
추상클래스와 인터페이스 본문
추상클래스와 인터페이스의 차이
공통점
추상 메소드를 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
'JAVA > 공부' 카테고리의 다른 글
좋은 객체 지향 설계의 5가지 원칙(SOLID) (0) | 2022.04.24 |
---|---|
접근제한자(Access Modifier) : public, protected, default, private (0) | 2022.04.23 |
싱글톤(Singleton) 디자인패턴 (0) | 2022.04.23 |
gmail로 email 인증번호 보내기(비밀번호 찾기 기능/ 회원가입시 이메일 인증/smtp) (2) | 2019.12.13 |
JAVA의 배열 길이와 문자열 길이 (0) | 2017.07.30 |
접근제어자 public, protected, private (0) | 2017.07.30 |
자바면접 질문유형 (0) | 2017.07.30 |
final과 static의 용도 및 용어정리(변수, 메소드, 클래스) (0) | 2017.07.30 |