티스토리 뷰

Java

추상클래스 vs 인터페이스

deerfrd 2017. 2. 6. 13:11


공통점

추상클래스와 인터페이스 모두는 구현부가 없는(몸체가 없는) 메소드를 포함하는 것이다.


차이점

추상클래스

몸체가 없는 추상메소드를 하나이상 포함하지만, 일반 메소드(몸체있는 메소드)들도 클래스 내부에 선언할 수 있다. 

인터페이스

몸체가 없는 메소드들만 선언해둘 수 있다.(일반 메소드 선언하면 안됨)


추상클래스

해당 추상클래스를 상속받은 자식 클래스에서 추상 메소드를 전부 오버라이딩(재정의) 할 필요는 없고, 필요한 것만 할 수 있다. (이때 자식클래스에서 오버라이딩 안한 추상 메소드들은 그냥 추상 메소드로 남는다.)

인터페이스

해당 인터페이스를 implements한 모든 클래스들에게서 인터페이스 안에있는 모든 메소드들의 구현을 해야한다. 하나의 메소드라도 구현하는걸 빠뜨리게 되면 에러가 난다.


결론

즉, 필요에 의해 원하는 메소드들만 구현(= 몸체를 채움) 해도 되는것은 추상클래스에 있는 추상메소드들이고,

내부에 있는 모든 메소드들을 반드시 구현해야하는것이 인터페이스 내부에 있는 메소드들이다.

'Java' 카테고리의 다른 글

System 클래스의 스트림 멤버들  (0) 2017.02.06
Hello World!  (0) 2017.02.06
protected 란? (접근제어자)  (0) 2017.02.06
스태틱 메모리 생성시점  (0) 2017.02.06
자바 접근제어 private와 public 구체적인 예  (0) 2017.02.06
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함