본문 바로가기
개발/Java

[Java] 클래스, 추상클래스, 인터페이스 차이

by devhooney 2023. 4. 21.
728x90

클래스, 추상클래스, 인터페이스는 객체 지향 프로그래밍(OOP)에서 사용되는 개념으로, 각각의 특징과 용도에 따라 차이가 있다.

클래스 (Class)
클래스는 객체를 생성하기 위한 템플릿이며, 객체의 상태와 동작을 정의하는데 사용된다.

클래스는 객체를 생성하는데 사용되는 구체적인 속성과 메서드를 포함하며, 객체는 클래스를 기반으로 생성된다.

- 객체(Object)

객체는 클래스를 기반으로 생성된 실체. 클래스의 인스턴스라고도 함.

객체는 클래스의 속성과 동작을 가짐.

객체는 메모리에 할당되어 실행 중인 프로그램에서 실제로 동작함.

객체는 독립적으로 자신의 상태를 가지고 메소드를 호출하거나, 다른 객체와 상호작용할 수 있다.

추상클래스 (Abstract Class)
추상클래스는 클래스의 한 종류로, 인스턴스를 직접 생성할 수 없고 다른 클래스에서 상속을 받아 사용하는 클래스.

추상클래스는 추상 메서드를 포함할 수 있으며, 추상 메서드는 구현이 없이 메서드의 원형만을 가지는 메서드.

추상클래스는 미완성된 클래스로, 자식 클래스에서 추상 메서드를 구현해야 한다.

추상클래스는 더 구체적인 클래스들이 공통적으로 가져야 하는 속성과 동작을 정의하고, 다양한 하위 클래스들이 이를 상속하여 사용할 수 있도록 한다.

추상클래스는 클래스 내 추상 메소드가 하나 이상 포함된 경우를 말한다.

추상 클래스의 목적은 추상 클래스를 상속 받아서 기능을 이용하고, 확장시키는 것.

 

인터페이스 (Interface)
인터페이스는 추상클래스와 비슷하게 추상 메서드를 포함할 수 있지만, 인터페이스는 더 추상화된 형태의 클래스.

인터페이스는 메서드의 원형만을 정의하고, 구현은 없다.

인터페이스는 클래스가 가져야 하는 특정한 동작을 정의하여 클래스 간의 표준화된 컨트랙트(계약)를 제공한다.

인터페이스는 추상 메서드의 집합으로만 이루어져 있다. 즉, 모든 메서드는 구현이 없이 메서드의 원형만을 가지며, 상수 필드만을 가질 수 있다.

인터페이스는 클래스와는 달리 다중 상속을 지원하며, 여러 개의 인터페이스를 구현할 수 있다.



요약하면, 클래스는 객체를 생성하기 위한 템플릿이고, 추상클래스는 미완성된 클래스로 다른 클래스에서 상속하여 사용되며, 인터페이스는 추상화된 형태의 컨트랙트를 제공하여 클래스 간의 표준화된 동작을 정의한다.

 

 

728x90