인터페이스 편집하기
최신판 | 당신의 편집 | ||
12번째 줄: | 12번째 줄: | ||
== 특징 == | == 특징 == | ||
− | ===100% | + | ===100% abstrace class=== |
− | 인터페이스의 모든 메소드는 자동으로 | + | 인터페이스의 모든 메소드는 자동으로 public abstract method가 된다. |
+ | 따라서 이를 구현하는 하위 클래스는 반드시해당 메소드의 body를 구현해야한다. | ||
+ | abstract class 와 구분하기 위해선언시에는 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> |
{{각주}} | {{각주}} |