java
Java에서 인터페이스는 클래스가 구현할 수 있는 계약을 정의합니다. 인터페이스에 선언된 모든 메서드는 기본적으로 추상 메서드이며, 본문이 없습니다. 인터페이스는 직접 인스턴스화할 수 없으며 단지 동작을 설명합니다.
인터페이스는 인스턴스 변수를 가질 수 없지만, public static final 수정자로 상수를 선언할 수 있습니다.
추상 클래스는 인스턴스화할 수 없는 클래스로, 추상 메서드(본문 없음)와 구체적 메서드(구현 있음)를 모두 포함할 수 있습니다. 최소 하나의 추상 메서드가 필요합니다.
추상 클래스는 서브클래스의 청사진 역할을 하며, 부모가 정의한 추상 메서드를 서브클래스가 반드시 구현해야 합니다.
인터페이스와 달리 추상 클래스는 인스턴스 필드를 통해 상태를 유지할 수 있고 기본 동작을 제공할 수 있습니다.
두 추상화 모두 계약을 정의하는 데 도움이 되지만, 구현과 용도에서 차이가 있습니다. 인터페이스는 메서드만 선언할 수 있지만, 추상 클래스는 기본 구현을 제공할 수 있습니다. 클래스는 하나의 추상 클래스만 확장할 수 있지만 여러 인터페이스는 구현할 수 있습니다.
| 측면 | 인터페이스 | 추상 클래스 |
|---|---|---|
| 조회 속도 | 동적 디스패치로 일반적으로 느림 | 가능한 경우 정적 디스패치로 더 빠름 |
| 다중 상속 | 여러 인터페이스 구현 지원 | 단일 상속만 가능 |
| 메서드 본문 | 추상만 가능(Java 8 이전) 또는 default/static(Java 8+) | 추상과 구체적 메서드 모두 포함 가능 |
| 상태 | 인스턴스 필드 선언 불가 | 인스턴스 필드와 생성자 선언 가능 |
| 사용 사례 | 관련 없는 클래스에 혼입할 역량 정의 | 공통 구현을 가진 공통 기반 제공 |
| 멤버 접근성 | 모든 멤버 암시적으로 public | protected, public, private 가시성 가능 |
| 다른 타입 확장 | 다른 인터페이스 확장 가능 | 클래스 확장 및 인터페이스 구현 가능 |
| 생성자 | 생성자 정의 불가 | 서브클래스용 생성자 정의 가능 |
| 상수 | 상수 정의 가능 (public static final) | 상수와 일반 필드 모두 정의 가능 |
인터페이스와 추상 클래스 선언 및 사용법을 보여주는 간결한 예제입니다.
interface Name {
// 메서드 선언
}
interface Pet {
void test();
}
class Dog implements Pet {
public void test() {
System.out.println("Interface method implemented");
}
public static void main(String[] args) {
Pet p = new Dog();
p.test();
}
}
abstract class Name {
// 코드
}
abstract class Shape {
int b = 20;
abstract void calculateArea();
}
class Rectangle extends Shape {
public static void main(String[] args) {
Rectangle obj = new Rectangle();
obj.b = 200;
obj.calculateArea();
}
void calculateArea() {
System.out.println("Area is " + (b * b));
}
}
java
소개 파이썬과 C++는 가장 널리 사용되는 프로그래밍 언어 중 두 가지로, 각각 고유한 강점과 이상적인 사용 사례를 가지고 있습니다. 이 기사는 데이터 기반의 명확한 비교를 통해 당신의 프로젝트에 가장 적합한 언어가 무엇인지 결정하는 데 도움을 드립니다. C++란 무엇인가? C++는 저수준 하드웨어 제어와 고수준 추상화를 결합한 고성능 다중 패러다임 언어입니다. 시스템 프로그래밍, 게임 엔진, 임베디드 디바이스, 속도와 메모리 효율이 중요한 모든 애플리케이션에서 가장 선호되는 선택지입니다. 파이썬이란 무엇인가? 파이썬은 깔끔한
부품을 설계할 때 유사 소재 간의 중요한 차이점을 이해하는 것이 중요합니다. 예를 들어, 고온을 견뎌야 하는 제품을 만들 때 열가소성 수지 대신 열경화성 수지를 잘못 사용하면 재앙적인 결과를 초래할 수 있습니다. 열가소성 수지와 열경화성 수지라는 용어는 플라스틱 부품 제조에 관한 많은 대화에서 등장하지만, 서로 교환할 수 없습니다. 이 글은 열가소성 수지와 열경화성 수지의 주요 차이점과 각 소재의 주요 장점 및 최적 응용 분야를 분석합니다. 열가소성 수지: 알아야 할 사항 기계적/화학적 특성 열가소성 수지는 가열되면 녹고 냉각되면