티스토리 뷰

추상클래스 vs 인터페이스

 

클래스: 우리가 사용할 객체에 대한 구현을 해 놓은 틀(객체를 찍어낸다) ex)붕어빵 틀, 공장의 생산라인

 

메소드  1. 구현메소드 : 구현 부{}가 있는 메소드

           2. 추상메소드 : 구현부{}가 없는 메소드

 

클래스  1.구현클래스 (Concrete class): 모든 메소드가 구현된 클래스

           2.추상클래스(Abstract class) : 추상 메소드가 존재하는 클래스,

추상 메소드가 없는(모든 메소드가 구현된) 클래스  ==== 부모가 메소드 구현{}을 하지 않아서 자식이 구현(재정의) 하는 것이다. 부모 부분에서 추상클래스로 선언부만 해주고 구현부는 반드시 자식들이 하게한다. 추상클래스는 new를 하지 못하게 막아놨다. 생성을  하면 알멩이가 없어서 오류가 나기때문

 좌변(큰거) = 우변(작은거) // 큰것에 작은 것을 넣은 것임

객체들의 크기는 상속트리를 기반으로 크고 작음을 판단한다.

 

인터페이스 : 클래스가 아님 클래스들이 지켜야하는 약속과 같은 것, 구현과 사용을 분리! 특정 구현에 의존하지 않는 설계에 사용, 무엇을 사용하는지 타입자체를 지정할 수 있다.

 

사용자 측면: “What”의 개념이다.=> 무엇을 할 수 있는지, 클래스들이 갖고 있어야 하는, 지켜야하는 약속, 스펙

구현자 측면: 약속대로 동작하도록 구현하는 책임 (무엇이 동작하도록 구현)

 

인터페이스가 같다 = 사용방법이 같다

 

사용하는 메소드는(사용방법) 약속되어 같은데 각각에 들어가는 기능들의 구현은 다르다.

 

인터페이스는 추상메소드 + 상수(바꾸지 못하도록,static 상수)만 가질 수 있다.

 

l  모든 메소드가 추상메소드라면 인터페이스로하여 다중상속을 받을 수 있어서 추상클래스보다 더 좋음

'TIL > Java' 카테고리의 다른 글

Garbage Collection  (0) 2023.01.21
[Java] Overloading ,Overriding  (0) 2021.01.31
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함