본문 바로가기

카테고리 없음

추상클래스 vs 인터페이스

추상클래스란?

미완성 설계도라고 할 수 있다. 

어떤 공통된 클래스들에 대해 추상화된 부분을 추상메소드를 통해 

하위 클래스들에게 상속을 통해 사용할 수 있도록 한다.

추상클래스는 인스턴스, 즉 객체를 만들 수 없다.

추상 메소드는 하위 클래스에서 메소드의 구현을 강제해야 하고, 

추상 메소드를 포함하는 클래스는 반드시 추상 클래스여야 한다.

상속하는 집한간에는 연관관계가 있다.

다중 상속이 불가하다.

 

인터페이스란?

구현된 것은 아무것도 없고 밑그림만 그려져있는 기본 설계도다.

모든 멤버 변수는 public static final 이어야 하며 이는 생략 가능하다.

모든 메소드는 public static abstract 이어야 하며 이 또한 생략 가능하다.

java8부터는 static, default method를 사용할 수 있다.

다중상속이 가능하며, 상속하는 집한간에 연관관계가 없을 수 있다.

 

추상클래스와 인터페이스 차이?

추상 클래스는 일반 클래스와 크게 다르지 않기 때문에 extends 키워드를 사용하고

인터페이스는 implements 키워드를 통해 상속을 구현한다.

인터페이스는 인터페이스에 정의된 메소드를 각 클래스의 목적에 맞게 기능을 구현하고,
추상클래스는 extneds 키워드를 사용해 자신의 기능을 하위 클래스로 확장시키는 것이라는
차이점이 있습니다.