Abstract
- instance 메소드, class에 사용되는 제한자
의미 : 추상적이다 → 구현이 안되었다.
- 메소드 : 메소드 구현 없이 선언만한 메소드
ex) public abstract void go(); {}이 붙으면 안된다.
→ 하위 class에서의 overriding을 강제한다. 하위 class들이 구현한 메소드의 template(틀) 역할
- Class : 객체 생성을 못하는 class
ex) public abstract class Animal { 구현 }
⑴ abstract 메소드를 가지는 class는 반드시 abstract class가 되야한다. 부모 class에 정의된 abstract 메소드를 overriding 안하면 abstract class가 되어야한다.
⑵ abstract class는 구현된 일반 메소드도 가질 수 있다.
⑶ 역할 : 자식 class의 template, 자식 객체에 대한 type 역할(다형성과 연결되는 개념)
Interface(인터페이스)
- 완벽히 추상화된 구조
- 역할 : 상위 type으로서의 역할 – 하위 class에 대한 type과 template을 위한 구조
- 구문 : [접근제한자]interface 이름[extends 인터페이스, ...] {
- 구현 : public static final 변수 = 값; public abstract 메소드 선언; }
- Class에서 Interface 상속 – 다중상속 가능
⑴ 구문: [제한자]class 이름[extends class명 implements interface명, “,” ] {}
ex) public class A extends B implements I.A, I.B, I.C { }
⑵ Class → Class : extends, 단일상속
Interface → Interface : extends, 다중상속
Class ---> Interface : implements, 다중상속
- 역할
⑴ 상위 type → 하위 class가 정리할 메소드 선언(추상)
⑵ 다형성에서 하위 객체를 대입할 변수의 type
⑶ 프로그램의 다른 class들에서 사용할 상수 값(코드, 불변의 값) 선언
⑷ 크게 관계없는 class들을 하나의 type으로 묶을 때 사용
'Wanna be a Programmer > Java Programming' 카테고리의 다른 글
Java Programming - Map, Iterator (0) | 2012.07.09 |
---|---|
Java Programming - Collection API, 배열 vs 컬렉션 (0) | 2012.07.04 |
Java Programming - 의존관계(Dependency), Final (0) | 2012.07.02 |
Java Programming - 다형성(Polymorphism), Heterogeneous Collection (0) | 2012.07.02 |
Java Programming - 상속, 메소드 오버라이딩, super (0) | 2012.07.02 |