티스토리 뷰
추상클래스 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
- 위클리챌린지2주차
- N과M
- SWEA
- commit되돌리기
- 트리
- git
- 자바
- 싸피
- 파이썬
- 프로그래머스
- 배포
- vue
- 비동기패턴
- SSAFY퇴소
- SSAFY
- Pyhton
- 독학
- 안드로이드스튜디오
- 백준
- 세션 스토리지
- django
- splide
- javascript
- AWS
- SQL
- vue.js
- Python
- Java
- DOM
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |