[java] 자바 추상 클래스와 인터페이스의 추상 메서드와 일반 메서드의 차이

자바에서 추상 클래스와 인터페이스는 객체 지향 프로그래밍에서 중요한 개념입니다. 둘 다 추상 메서드를 포함할 수 있지만, 추상 클래스와 인터페이스 간에는 추상 메서드와 일반 메서드의 차이가 있습니다.

추상 클래스의 추상 메서드

예시 코드:

public abstract class Animal {
    public abstract void makeSound();
    
    public void eat() {
        System.out.println("Animal is eating.");
    }
    
    public void sleep() {
        System.out.println("Animal is sleeping.");
    }
}

public class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Meow");
    }
}

인터페이스의 추상 메서드

예시 코드:

public interface Vehicle {
    void start();
    void stop();
}

public class Car implements Vehicle {
    @Override
    public void start() {
        System.out.println("Car started.");
    }
    
    @Override
    public void stop() {
        System.out.println("Car stopped.");
    }
}

추상 클래스와 인터페이스를 선택하는 기준

참고 자료: