상세 컨텐츠

본문 제목

[자바] 추상 클래스와 인터페이스에 대해 설명해주세요

😎 지식/자바

by :부셔져버린개발자 2025. 3. 27. 15:26

본문

[ 추상 클래스 ] 

추상 클래스는 추상 메소드가 하나라도 존재하는 클래스extends 키워드를 사용하며 다중 상속이 불가능하다 

상속을 통한 기능 확장 또는 공통 기능을 하위 클래스에서 재사용할 때 유용하다 

기본적인 동작을 제공하면서 세부 동작은 하위 클래스가 정의하도록 강제한다 

abstract class Vehicle {
    void startEngine() {
        System.out.println("엔진을 켭니다");
    }

    abstract void move(); // 이동 방법은 탈것마다 다르니 추상 메소드로 정의
}

class Car extends Vehicle {
    @Override
    void move() {
        System.out.println("도로를 따라 달립니다");
    }
}

class Boat extends Vehicle {
    @Override
    void move() {
        System.out.println("물을 따라 떠다닙니다");
    }
}

 

 

[ 인터페이스 ] 

인터페이스는 클래스 간 공통된 동작을 정의하고 싶을 때 사용하며 implements 키워드다중 상속이 가능하다 

기능을 약속하고 강제하는 용도에 적합하다.

interface Workable {
    void work(); // 일하는 방식은 클래스마다 다르게 정의
}

class Developer implements Workable {
    @Override
    public void work() {
        System.out.println("코드를 작성합니다");
    }
}

class Designer implements Workable {
    @Override
    public void work() {
        System.out.println("디자인을 합니다");
    }
}

 

Thinkable, Reportable 등 여러 인터페이스를 구현할 수 있다 

728x90

관련글 더보기