티스토리 뷰
추상클래스란?
정의되어있지 않아 추상적인 클래스를 의미하고 말 그래도 정의되어있지않은 메소드들을 포함할 수 있는 클래스이다.
WHY? 왜 사용가는가?
자동차는 바퀴, 색, 회사, 사이즈 등의 특성을 가진다고 할 때, 추상클래스로 바퀴를 정의했다고 하자.
추상클래스는 정의되어있지 않은 것이기에, 자동차A 클래스가 자동차 클래스를 extends(상속)한다면 자동차A클래스에서 재정의해서 (메서드 오버라이딩) 사용해야한다.
자동차 class에 바퀴를 정의해놓는 것이 아니라 자동차A에서 따로 정의하고, 자동차B에서 따로 정의하게될때, 비로소 자동차의 바퀴에 값이 할당되거나 자동차 바퀴가 정의되게된다. 부모 class에서 특정 값으로 정해놓는 것보다 자체적으로 매서드를 작성하며 별개로 작업하는 과정이 많아질때 추상클래스를 사용한다.
HOW?
1) 부모 class를 abstract class로 정의한다.
만약 게임을 만들고 게임캐릭터 A,B,C,D가 사용할 수 있는 부모 class인 Character class를 만든다고 가정하자.

2) method를 추상method로 정의할 수 있다.
위의 사진처럼 abstract를 활용해 가능하고 함수를 부모 class에서는 정의하지 않는게 원칙이다.
3) 상속받아 사용하자.

다음 사진과 같이 게임캐릭터 Human이 있다고할 때 Human은 Character를 상속받고 @Override를 활용해 정의되어있지 않은 추상method를 정의해준다.
[tip] 자식 class명 옆에 extends 부모 class명을 입력하면 자식class명에 빨간줄이 나타난다.
=> 해결방법 : override때문이니 그 작업을 해주면 되고 빨간줄이 나타나는 위치에 마우스를 대고 가장 첫번째를 눌러주거나/ F2를 눌러 가장 첫번째를 눌러주면 해결가능하고 자동으로 추상매서드들이 자식 class에 정의된다.
- Total
- Today
- Yesterday
- 스택 파이썬
- DRF 회원관리
- 백준 11053 파이썬
- 백트래킹(1)
- mm1queue
- 10866 백준
- 딥러닝입문
- 기사작성 대외활동
- 시뮬레이션 c
- 4963 섬의개수
- 기본 텍스트 분류
- 백준 15650 파이썬
- 백준 숫자놀이
- CSMA/CD란?
- 효율적인방법찾기
- 13886
- c++덱
- 코딩월드뉴스
- 소프트웨어공학설계
- 영화 리뷰 긍정 부정 분류
- 온라인프로필 만들기
- 파이썬 알아두면 유용
- 11053 백준
- 백준 4963
- 백준 10866
- stack 컨테이너
- 핀테크 트렌드
- CREATE ASSERTION
- LAMBDA
- 모듈 사용법
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |