-
Java 추상(Abstract) 클래스와 인터페이스(Interface): 개념 잡고 활용하기☕Java 2024. 12. 16. 13:05728x90
Java 프로그래밍에서 추상 클래스와 인터페이스는 객체 지향 설계의 핵심적인 개념입니다. 이 둘은 코드 재사용성을 높이고 유연한 설계를 가능하게 하지만, 초보 개발자들에게는 혼란스러울 수 있습니다. 이 글에서는 추상 클래스와 인터페이스의 개념, 차이점, 그리고 활용 방법을 명확하게 설명하여 여러분의 이해를 돕고자 합니다.
1. 추상 클래스 (Abstract Class)
개념: 추상 클래스는 구체적인 구현 없이 메서드의 선언만 있는 추상 메서드를 포함할 수 있는 클래스입니다. 쉽게 말해, 밑그림만 그려져 있고 세부적인 내용은 채워지지 않은 클래스라고 생각하면 됩니다. 추상 클래스는 abstract 키워드를 사용하여 선언합니다.
특징:
- 인스턴스화 불가: 추상 클래스는 직접 객체를 생성할 수 없습니다.
- 추상 메서드 포함 가능: 추상 메서드는 구현 코드 없이 선언만 되어 있으며, 상속받는 클래스에서 반드시 구현해야 합니다.
- 일반 메서드와 변수 포함 가능: 추상 메서드뿐만 아니라 일반 메서드와 변수도 가질 수 있습니다.
예시:
Javaabstract class Animal { public abstract void makeSound(); // 추상 메서드 public void eat() { // 일반 메서드 System.out.println("냠냠"); } }
2. 인터페이스 (Interface)
개념: 인터페이스는 모든 메서드가 추상 메서드인 특별한 종류의 클래스입니다. 일종의 계약서와 같은 역할을 하며, 특정 메서드들을 구현하도록 강제합니다. 인터페이스는 interface 키워드를 사용하여 선언합니다.
특징:
- 인스턴스화 불가: 인터페이스는 직접 객체를 생성할 수 없습니다.
- 모든 메서드는 추상 메서드: 인터페이스는 추상 메서드만 가질 수 있습니다. (Java 8부터 default 메서드와 static 메서드도 가질 수 있지만, 이 글에서는 기본 개념에 집중합니다.)
- 상수 선언 가능: 인터페이스는 상수를 선언할 수 있습니다.
예시:
Javainterface Flyable { void fly(); // 추상 메서드 }
3. 추상 클래스 vs 인터페이스
특징추상 클래스인터페이스메서드 추상 메서드, 일반 메서드 모두 가능 추상 메서드만 가능 변수 일반 변수, 상수 선언 가능 상수만 선언 가능 상속 extends 키워드 사용, 단일 상속만 가능 implements 키워드 사용, 다중 구현 가능 관계 "is-a" 관계 (예: Dog is an Animal) "can-do" 관계 (예: Bird can fly) Sheets로 내보내기4. 활용 방법
- 추상 클래스: 공통적인 기능을 가진 클래스들의 부모 클래스로 사용하여 코드 중복을 줄이고, 일부 메서드는 상속받는 클래스에서 구현하도록 강제할 때 유용합니다.
- 인터페이스: 서로 다른 클래스들이 공통적인 메서드를 갖도록 강제하여, 다형성을 높이고 코드 유연성을 확보할 때 유용합니다.
5. 마무리
추상 클래스와 인터페이스는 Java 프로그래밍에서 중요한 개념이며, 객체 지향 설계 원칙을 따르는 데 필수적인 요소입니다. 이 글을 통해 추상 클래스와 인터페이스의 개념과 차이점을 이해하고, 적재적소에 활용하여 효율적이고 유연한 코드를 작성할 수 있기를 바랍니다.
인터페이스는 클래스가 아니기에 클래스를 사용하지 않는다.
인터페이스는 변수를 사용 할 수 없다> 상수는 사용가능 하다
상수라느 한변 결정되면 값을 바꾸지 못하고 static 으로 되어 있는 변수는 사용 가능 하다
상
728x90'☕Java' 카테고리의 다른 글
Java [ ArrayList 와 HashMap ] (0) 2024.12.17 Java에서 문자열과 숫자 간 변환: 쉽게 이해하기(부록 문자열 함수소개) (0) 2024.12.16 Java 상속이란? + 문제풀이 (1) 2024.12.15 자바 초보자를 위한 Constructor (생성자) 활용법 – 주소록 프로그램 만들기 (0) 2024.12.11 🖥️ 자바에서 명령어가 메모리를 활용하여 구동되는 원리 (완전 쉬운 설명!) (0) 2024.12.10