인터페이스 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
12번째 줄: 12번째 줄:
  
 
== 특징 ==
 
== 특징 ==
===100% 추상 클래스===
+
===100% abstrace class===
인터페이스의 모든 메소드는 자동으로 퍼블릭 추상 메소드(public abstract method)가 된다. 따라서 이를 구현하는 하위 클래스는 반드시 해당 메소드의 body를 구현해야 한다. 추상 클래스(abstract class)와 구분하기 위해 선언 시에는 클래스(class) 키워드 대신 인터페이스(interface) 키워드를 사용한다.
+
인터페이스의 모든 메소드는 자동으로 public abstract method가 된다.
 +
따라서 이를 구현하는 하위 클래스는 반드시해당 메소드의 body를 구현해야한다.
 +
abstract class 와 구분하기 위해선언시에는 class 키워드 대신 인터페이스 키워드를 사용한다.
  
 
===다형성 제공===
 
===다형성 제공===
상위 객체에 하위 객체를 참조하게 하여신규로 추가되는 하위 객체에 대해서도 동일한 규약을 가지게 하는 것처럼 인터페이스(interface)도 [[추상클래스]](abstact class)로서 같은 역할을 수행할 수 있다.
+
상위 객체에 하위 객체를 참조하게 하여신규로 추가되는 하위 객체에 대해서도 동일한 규약을 가지게 하는 것처럼
 +
interface도 abstact class로써 같은 역할을 수행할 수 있다.
  
 
===상속 트리에 무관하게 적용 가능===  
 
===상속 트리에 무관하게 적용 가능===  
상위 객체와 하위 객체의 관계와는 달리상속 트리 상의 계보를 타지 않더라도전혀 다른 트리상의 객체에 대해서도 인터페이스를 적용할 수 있다. 이 경우 인터페이스는 하위 객체에서 반드시 구현해야하므로규약의 성격을 발휘하면서도 하나의 "역할"을 부여하는 기능을 한다.
+
상위 객체와 하위 객체의 관계와는 달리상속 트리 상의 계보를 타지 않더라도전혀 다른 트리상의 객체에 대해서도 인터페이스를 적용할 수 있다.
 +
이 경우 인터페이스는 하위 객체에서 반드시 구현해야하므로규약의 성격을 발휘하면서도 하나의 "역할"을 부여하는 기능을 한다.
  
 
===여러개 인터페이스 구현===
 
===여러개 인터페이스 구현===
[[자바]]에서 다중 상속을 막는 것과는 달리 인터페이스는 DDD(Deadly Diamond of Death)를 발생하지 않으므로 하위 클래스는 여러개의 인터페이스를 구현할 수 있다.<ref>밤바, 〈[https://phrack.blog.me/80035424952 Interface의 특징]〉《codelabor.org - Bomber's Note》, 2007-03-06</ref>
+
[[자바]]에서 다중 상속을 막는 것과는 달리 인터페이스는 DDD(Deadly Diamond of Death)를 발생하지 않으므로
 +
하위 클래스는 여러개의 인터페이스를 구현할 수 있다.<ref>밤바, 〈[https://phrack.blog.me/80035424952 Interface의 특징]〉《codelabor.org - Bomber's Note》, 2007-03-06</ref>
  
 
== 종류 ==
 
== 종류 ==
48번째 줄: 53번째 줄:
 
==활용==
 
==활용==
 
인터페이스는 아래와 같이 4단계를 통해 구현 및 사용이 된다.
 
인터페이스는 아래와 같이 4단계를 통해 구현 및 사용이 된다.
* View : 인터페이스 정의(Define) 및 인터페이스와 컨트롤러 연결(Setter) 구현
+
*View : 인터페이스 정의(Define) 및 인터페이스와 컨트롤러 연결(Setter) 구현
* Controller : 인터페이스와 컨트롤러 연결(Setter에 인터페이스 전달 하여 호출)
+
*Controller : 인터페이스와 컨트롤러 연결(Setter에 인터페이스 전달 하여 호출)
* Controller : 인터페이스 함수 구현(Import 혹은 Implements)
+
*Controller : 인터페이스 함수 구현(Import 혹은 Implements)
* View : 인터페이스 함수 실행(Run)<ref>순수하지않은개발자, 〈[https://codeasy.tistory.com/2 (개념이해)자바의 인터페이스 이해]〉《쉽게배우는안드로이드》, 2016-12-27</ref>
+
*View : 인터페이스 함수 실행(Run)<ref>순수하지않은개발자, 〈[https://codeasy.tistory.com/2 (개념이해)자바의 인터페이스 이해]〉《쉽게배우는안드로이드》, 2016-12-27</ref>
  
 
{{각주}}
 
{{각주}}

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)