public interface Card(){
private int spade = 5; //오류 : interface 제약을 따르지 않았다.
public int spade1 = 5; //정상 : public static final spade1 = 5; 로 컴파일러가 자동으로 추가해준다.
static int heard = 2; //정상 : 컴파일러의 자동추가
int clover = 4; //정상 : 컴파일러의 자동추가
public abstract String getCardNumber(); //제약을 따랐기 때문에 정상이다.
String getCardKing(); //public abstract String getCardKing(); 컴파일러가 자동으로 추가해준다.
private abstract String getCard(); //제약을 따르지 않은 private로 오류가 난다.
protected abstract String getCard2(); //제약을 따르지 않은 protected로 오류가 난다.
인터페이스는 클래스를 서로 연결시켜주는 매개체와 같은 역할을 하면서
자신을 구현한 클래스에 대해 명령(수행) 을 내일수 있습니다.
class Html implements WebIF {}
class Xml implements WebIF {}
class Pdf implements WebIF {}
위의 Html Xml Pdf 세가지의 클래스는 웹 인터페이스를 구현 하였습니다.
그러므로 위의 3개의 클래스의 형(Class Type)은 같습니다.
샘플 코드를 작성하면 이렇게 되겠지요
WebIF inf = new Html();
WebIF inf = new Xml();
WebIF inf = new Pdf();
업 케스팅 인스턴스를 한 것입니다.
그런데 WebIf 에 print() 메서드가 있다면
Html
Xml
위의 3개의 클래스는 prin() 메서드를 자신들에 알맞게 구현해 주면 됩니다.
Html 은 <html></html> 이 될 것이고
Xml 은
Pdf 는 %PDF-1.2 ..................... %%EOF 가 되겠지요...
인터페이스는 서로다른 객체를 표준화된 인터페이스란 통로로 서로 연결시키고
약속된 일을 수행함으로써 확장된 객체로서 다양한 비지니스 요구사항을 충족시키게 되는 것입니다.
출저: http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=69965713
'좋은 설계자 & 좋은관리자 & 좋은개발자 > Design Pattern & Modeling' 카테고리의 다른 글
오버로딩 오버라이딩 차이 (1) | 2013.12.19 |
---|---|
프로세스와 스레드 차이 (0) | 2013.12.19 |
Singletone (0) | 2013.11.25 |
Java Object Sorting Example (Comparable And Comparator) (0) | 2013.08.01 |
Arraylist, array 마음대로 Convert 하기 (0) | 2013.03.18 |