[JAVA] abstract class vs interface

2021. 8. 2. 22:01프로그래밍/web

객체 지향 프로그래밍 

프로그램 설계방법론이자 개념의 일종.
프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다.

추상화

abstract class(추상 클래스)

- 미완 클래스 
 자체적으로 객체를 생성할 수 없다.
- 추상 메소드와 일반 메소드를 둘다 가질 수 없다.(interface는 일반메소드를 가질수 없다)
- 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 구현.
- 다형성 구현 가능
- extends를 통해 상속

interface

- 클래스가 아니다
자체적으로 클래스를 생성할 수 없다.
- 다중 상속같은 기능을 줄 수있다.
- 추상메소드, 상수만 가질수 있다.
- implements를 사용