일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 언어 순위
- 정처기 실기
- 개발 언어
- 2017티스토리결산
- 프로그래밍
- 순위
- 정처기 필기
- 점유율
- 정처기 후기
- 실기
- 정처기 공부법
- 그레이시
- 정보처리기사 후기
- 주짓수
- 정보처리기사
- 브라이언 오르테가
- 정처기
- 시나공
- 정보처리기사 공부법
- 필기
- 2018 정처기
- 개발 언어 순위
- 2017
- 2018 정보처리기사
- 프로그래밍 언어 순위
- 말의품격 이기주 힐링 책 도서
- 언어
- 프로그래밍 언어
- Language
- 변화
- Today
- Total
Enjoy what you do!
추상 클래스와 인터페이스 본문
공통점 : 두개 다 상속받은 클래스가 그 멤버 메소드들을 반드시! 재정의해줘야 된다.
<추상클래스>
재정의 시에 override 키워드가 꼭 필요하다.(씨샵의 경우이고 자바는 그냥 어노테이션해도되고 안해도되고)
- 추상클래스의 목적은 클래스의 확장이다. 상속을 하여 코드의 재사용을 하면서 꼭 재정의해야하는 메소드(꼭 필요한 메소드?)를 정해놓은 거다.
<인터페이스>
override 키워드 없이 그냥 정의하면 된다.
-인터페이스의 목적은 기능을 강제하는 것이다. 개발 시 협업에 있어서 굉장히 유용하게 사용된다.
인터페이스가 있으므로 이렇게 개발하라는 가이드라인을 제시할수 있다.
인터페이스를 상속하면 정해진 가이드라인대로 개발하면 되는것이다.
그 인터페이스를 상속하는 클래스만 구현한다면 그 클래스를 인터페이스로 받아서 사용하면 된다.
자바의 경우
클래스의 다중 상속이 불가능하다. (씨플플은 다중상속 가능)
클래스 다중상속을 허용하면 골칫거리가 많기 때문에 안되는걸로 되어있다.
하지만 인터페이스를 쓰면 인터페이스들을 다중 상속할 수 있다.
선택적으로 필요한것만 상속하기!
-> 부모 메소드에 어떤 동작을 추상메소드로 선언하면 자식 메소드는 그 동작을 무조건 오버라이드를 해줘야한다. 무조건 상속해야되는거다.
하지만 우리는 어떤 동작들을 선택적으로 상속하고 싶다.
그럴땐 그 동작들을 인터페이스로 만들고 부모 메소드는 그 인터페이스를 필드로 갖고있는다.
그러면 자식 메소드는 그 인터페이스를 상속한 클래스를 필드에 넣어 사용할수 있다. 그 동작을 사용안하는 자식 메소드는 그 동작을 하는 필드를 비워두면되는거다.
추상클래스 특이한점
클래스를 abstract 로 선언하고 추상 클래스안에 추상 메소드가 한개도 없을수 있다. 컴파일 에러 안난다.
이렇게 쓰는이유는
서브클래스를 생성할 수있고 메소드들을 재정의 안해도되는데 이 수퍼클래스를 단지 인스턴스화 못해도록 막아 놓았을뿐이다.
그냥 단순히 클래스의 인스턴스화 막기위해 이렇게 쓰기도 하나보다.
참고할 만한 사이트 : http://private.tistory.com/20
'여러가지 잡동사니' 카테고리의 다른 글
AWS 한도 초과 이메일을 받다! (0) | 2018.01.03 |
---|---|
아이콘 다운, 파비콘 만들기, ico 변환 (0) | 2017.12.13 |
웹개발(JAVA,JSP,Spring) 관련 예상 면접 질문 (0) | 2017.12.11 |
비쥬얼 스튜디오 자동 줄맞춤 (0) | 2017.12.01 |
스킨 #2 반응형 사진 교체 (0) | 2017.11.19 |