자바

추상 클래스(abstract class)와 인터페이스(interface) 의 차이점

dev_dean 2022. 11. 30. 10:53

 

추상 클래스 

추상 클래스는 클래스 내에 추상 메소드가 하나 이상 포함되거나 클래스가 abstract로 정의된 경우를 말한다.

abstract class A {
	public void hi() {
    	System.out.println("hi");
    }
	abstract void hello();
}

 

인터페이스

인터페이스는 모든 메소드가 추상 메소드로만 이루어진 것을 말한다. 

interface B {
	public void helloWorld();
}

 

공통점

생성자를 이용한 인스턴스 생성이 불가

추상 메소드를 구현하도록 강제함

 

차이점

추상 클래스는 멤버 변수, 일반 메소드를 가질 수 있다. 

인터페이스는 추상 메소드만을 가질 수 있다.인터페이스는 다중 상속이 가능하지만 추상 클래스는 다중 상속이 불가능하다.