티스토리 뷰
인터페이스(Interface)
이번시간에는 인터페이스(Interface)에 대해서 알아보려고 한다.
중요 키워드
구현 : implements
정의 : interface
특징
- 추상 클래스와 비슷하다.
- 객체를 생성하지 못한다.
- 기본 틀만 존재하며, Overridng을 통해 구현한다.
- 다중상속이 가능하다.
사용하는 이유
만약 여러명의 개발자(A, B, C)가 게임에 관련된 프로젝트를 동시에 진행하는 상황으로 예를 들어본다.
A가 구현 해야되는 유닛은 한번 이동 시에 3칸을 이동해야 되고, B가 구현 해야되는 유닛은 한번 이동 시에 2칸을 이동해야 되며,
C가 구현 해야되는 유닛은 한번 이동 시에 1칸을 이동해야 된다.
얼마나 이동하는지 거리만 다를 뿐 이동한다는 내용은 동일하다!
이럴경우 인터페이스를 통해 기본 틀을 제공한다면, 각 유닛 특징에 맞게 서로 영향을 주지 않고 개발을 진행할 수 있다. 또한 동시에 진행되는 만큼 개발시간을 단축 시킬 수 있는 장점이 생긴다.
구성
- 변수와 메서드로 구성할 수 있다.
- 멤버변수는 반드시 상수여야 한다.
- ex) int a = 10 라고 선언 시, 자동으로 public static final int a = 10으로 변경 된다.
- static final은 생략 가능
- 메서드는 반드시 추상 메서드여야 한다.
- ex) String method()로 선언 시, public abstract String method()로 변경 된다.
- abstract가 생략이 가능
정의 및 구현
정의
interface A { public static final int a = 10; public abstract void Hello(); } 또는 위의 구성 2,3번 내용 참조 interface A { public int a = 10; public void Hello(); }
구현
class Coo implements A{ @Override public void Hello() { System.out.println("int a = " + a); System.out.println("Hello Interface"); } }
'JAVA' 카테고리의 다른 글
[자바(JAVA)] 래퍼클래스(Wrapper Class) (0) | 2017.07.23 |
---|---|
[자바(JAVA)] 상속(Inheritance)의 개념 (0) | 2017.07.09 |
[자바(JAVA)] Properties 클래스 (0) | 2017.06.28 |
[자바(JAVA)] 오버로딩(Overloading) / 오버라이딩(Overriding) (0) | 2017.06.28 |
[자바(JAVA)] 생성자란 무엇인가? (0) | 2017.06.27 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- keySet()
- HttpMethod
- constructor
- java
- 상속
- overloading
- overriding
- parent
- override
- autoboxing
- mvc 패턴
- 오버로딩
- Unboxing
- inheritance
- Properties
- 자식클래스
- HashMap
- 오토박싱
- extends
- Model2
- Boxing
- wrapper
- 오버라이딩
- Post
- MVC아키텍처
- 래퍼클래스
- 부모클래스
- 자바
- MVC
- 생성자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함