728x90
Abstract Class
- 추상클래스(Abstract Class)는 하나 이상의 추상 메소드를 포함하는 클래스이다.
- 추상 메소드란 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨 둔 것.
- 추상메소드는 추상클래스를 상속 받은 서브 클래스에서 구현된다.
- JAVA에서 추상클래스와 추상메소드를 선언하기 위해서는 접근제어자 뒤에 abstract를 붙인다.
- 클래스를 abstract로 지정하면 new를 통해 객체를 직접 생성할 수 없다.
- 메소드에 abstrat를 사용하면 interface의 메소드와 같이 구현 부분은 없다.
- abstract로 선언한 메소드를 자식클래스에서 반드시 구현해야 한다.(오버라이딩)
Interface
- 인터페이스(Interface)는 추상메소드로만 구성되어 있다.
- 추상클래스와 마찬가지로 인터페이스에서 선언된 추상메소드는 서브클래스에서 구현.
- JAVA에서 예약어로 class 대신 interface를 사용하며 extends 대신 implement로 서브클래스에서 상속 받는다.
- 모든 멤버 변수는 public static final 이어야 하며, 생략할 수 있다.
- 모든 메소드는 public abtract 이어야 하며, 생략할 수 있다.
public static final 사용 목적
인터페이스 변수는 아무 인스턴스도 존재하지 않는 시점이기에 스스로 초기화 될 권한이 없다.
public static final을 사용해 구현 객체의 같은 상태를 보장한다.
Interface vs Abstract
공통점
- New 연산자로 인스턴스 생성 불가능
- 프로토타입만 있는 메소드를 갖는다
- 사용하기 위해서는 하위클래스에서 확장/구현해야 한다
차이점
- 사용하는 키워드가 다르다
- Abstrat는 일반 메소드를 사용할 수 있지만, Interface는 메소드 선언만 가능하다
728x90
'Java & Spring' 카테고리의 다른 글
[Spring] Get 방식, Post 방식 정리 (0) | 2022.04.02 |
---|---|
[JAVA] Stack, Heap 스택과 힙 (0) | 2022.04.01 |
[JAVA] Primitive type, Reference type 기본형, 참조형 정리 (0) | 2022.03.30 |
[JAVA] Process, Thread 프로세스와 스레드/쓰레드 정리 (0) | 2022.03.29 |
[JAVA] OOP(Object-Oriented Programming) 객체 지향 프로그래밍 (0) | 2022.03.28 |