일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java Programming
- SSAFY 9기
- java
- CS50
- SW
- til
- 모두를 위한 컴퓨터 과학(CS50)
- 기초프로그래밍
- CS기초지식
- ssafy
- 면접을 위한 CS 전공지식 노트
- 예외처리
- 관계형 데이터베이스
- 상속
- exception
- 삼성청년SW아카데미
- 데이터베이스 모델링
- Computer Science
- ERD
- 부스트코스
- 알고리즘
- 이진법
- WebProgramming
- 객체지향
- CS 기초
- edwith
- Compute Science
- 모두를 위한 컴퓨터 과학
- w3schools
- CS 기초지식
- Today
- Total
Joslynn의 하루
추상클래스와 인터페이스의 차이점 본문
추상 class
: 개체들의 공통 분모를 일반화 // 속성, 메소드(기능), 객체들의 이름 자체 등;
: 공통으로 가지고 있는 속성, 또는 공통으로 가져야 하는 기능 등을 집중화
: 공통 분모의 수준으로만 사용 시 추상 class의 객체에 다양한 타입의 객체를 대입해 사용 가능
: client와 상관없이 도구들이 먼저 존재할 수 있음
: client가 어떤 것을 사용할 것인가를 결정 지음
예시 1)
- abstract class 동물 // 타입으로서의 의미는 있으나 동물이라는 실제 객체는 없음; → 추상 class, 타입으로 존재, 실제 객체 생성 불가
- abstract void 먹기(); // 추상 메소드 → 먹기라는 기능은 있는데, 어떻게 동작할지는 아직 정하지 않음;
** 참조사항
상속 == is a 관계: 동물 - 개, 동물 - 고양이, 조류 - 닭 등;
↔ has a 관계: TV와 리모콘처럼 리모콘이 TV의 참조변수를 포함하는 경우; (TV 참조)
인터페이스
: client가 기능이 필요하면 인터페이스에 기능 추가;
: 각 구현 객체들에서는 해당 기능을 구현 및 사용자에게 제공;
: 추상 class와 비교했을 때, client의 요구가 더 중요;
: 사용하고자 하는 객체에서 재정의해서 사용 // 구현된 구체적인 기능은 해당 객체에서만 사용 --- 모호함 제거;
: 전혀 다른 타입 간 관계를 만들어줄 수 있음; // 배열로 하나로 묶을 수 있음; (기능으로 묶어줄 수 있다);
예시1)
포유류 - 고래, 어류 - 상어, 어류 - 물고기, 포유류 - 펭귄
interface 물생활 [ ] = new 물생활 [ ] { 고래, 상어, 펭귄, 물고기} /*interface 물생활: 타입으로서는 유효*/
예시2)
리모콘 (인터페이스)
TV, 오디오 (구현 class)
리모콘.turn on();
: 리모콘에 어떤 구현 객체를 대입하느냐에 따라 TV를 켤 수도 있고, 오디오를 켤 수도 있음;
'개발 고민' 카테고리의 다른 글
Servlet & JSP 핵심 정리 (0) | 2022.10.17 |
---|---|
상속과 다형성_String class의 toString 메소드_220731 (0) | 2022.07.31 |
[Java] 배열 원소 중 최대값 구하기, 기본 정렬 알고리즘(선택, 버블, 삽입)_220726 (0) | 2022.07.26 |
개발 공부_배열, 다차원 배열, 상수형 변수_220724 (0) | 2022.07.25 |