2017년 6월 8일 목요일
인터페이스 ( interface )
■ 인터페이스는 일종의 추상클래스이다. 인터페이스는 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상메서드와 상수만을 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 허용하지 않는다.
■ 인터페이스의 작성
키워드로 class 대신 interface를 사용한다.
interface 인터페이스이름{
public static final 타입 상수이름 = 값;
public abstract 메서드이름 ( 매개변수 목록 ) ;
}
interface에도 클래스와 같이 접근제어자로 public 또는 default를 사용할 수 있다.
일반적인 클래스의 멤버들과 달리 인터페이스의 멤버들은 다음과 같은 제약이 있다.
- 모든 멤버변수는 public static final 이어야 하며, 이를 생략할 수 있다.
- 모든 메서드는 public abstract 이어야 하며, 이를 생략할 수 있다.
인터페이스에 정의된 모든 멤버에 예외없이 적용되는 사항이기 때문에 제어자를 생략할 수 있는것이며, 편의상 생략하지만, 생략된 제어자는 컴파일 시에 컴파일러가 자동적으로 추가해 준다.
■ 인터페이스의 상속
인터페이스는 인터페이스로 부터만 상속받을 수 있으며, 클래스와는 달리 다중상속, 즉 여러개의 인터페이스로 부터 상속을 받는 것이 가능하다.
[참고] 인터페이스는 클래스와 달리 Object클래스와 같은 최고 조상이 없다.
interface Movable{
void move(int x, int y);
}
interface Attackable{
void attack(Unit u);
}
interface Fightable extends Movable, Attackable{ }
■ 인터페이스의 장점
- 개발시간을 단축 시킬 수 있다.
인터페이스가 작성되면, 이를 사용해서 프로그램을 작성하는 것이 가능하다.
메서드를 호출하는쪽에서는 메서드의 내용에 관계없이 선언부만 알면 되기 때문이다.
그리고 동시에 다른 한 쪽 에서는 인터페이스를 구현하는 클래스를 작성하도록 하여, 인터페이스를 구현하는 클래스가 작성될 때 까지 기다리지 않고도 양쪽에서 동시에 개발을 진행 할 수 있다.
- 표준화가 가능하다.
프로젝트에 사용되는 기본 틀을 인터페이스로 작성한다음, 개발자들에게 인터페이스를 구현하여 프로그램을 작성하도록 함으로써 보다 일관되고 정형화된 프로그램의 개발이 가능하다.
- 서로 관계없는 클래스들에게 관계를 맺어 줄 수 있다.
서로 상속관계에 있지도 않고, 같은 조상클래스를 가지고 있지 않은 서로 아무런 관계도 없는 클래스들에게 하나의 인터페이스를 공통적으로 구현하도록 함으로써 관계를 맺어 줄 수 있다.
- 독립적인 프로그래밍이 가능하다.
인터페이스를 이용하면 클래스의 선언과 구현을 분리시킬 수 있기 때문에 실제구현에 독립적인 프로그램을 작성하는 것이 가능하다. 클래스와 클래스간의 직접적인 관계를 인터페이스를 이용해서 간접적인 관계로 변경하면, 한 클래스의 변경이 관련된 다른 클래스에 영향을 미치지 않는 독립적인 프로그래밍이 가능하다.
피드 구독하기:
댓글 (Atom)
JavaScript_함수의 역할
◎ 자바스크립트 함수의 역할 ■ 자바스크립트 함수와 메서드는 전혀 다른 개념이다. - 자바스크립트 함수는 메서드 역할을 할 수 있지만, 객체지향 프로그래밍의 메서드는 자바스크립트의 함수 역할을 할 수 없다. - 메서드와는 다르게 ...
-
[ 출처 ] TCP 3-way Handshake ? TCP는 장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 three-way handshake를 사용한다. TCP 3 way Handshake는 TCP/IP 프로토콜을 이용...
-
modifier ( 제어자 ) final 33 lines (28 sloc) 1.04 KB package common.fundament.modifier ; /* * * Created by home on 2017-06-06. ...
-
변수란 단 하나의 값을 저장할 수 있는 저장 공간이다. 변수는 기본형과 참조형 변수로 나눌 수 있다. 자바는 C언어와 달리 참조형 변수간의 연산을 할 수 없다. 실제 연산에 사용되는 것은 모두 기본형 변수이다. 참조형 변수는 null...
댓글 없음:
댓글 쓰기