TEMP
인터페이스(interface)_ 다중상속, 구현 (implementation)
장꾸꾸
2020. 8. 19. 13:21
인터페이스(interface)
자바에서 인터페이스(interface)는 객체의 사용방법을 정의한 타입이다. 즉, 메소드 이름규칙을 붙여주기 위해서만 존재한다. 따라서 만약 기능, 이름규칙 두 가지를 다중상속 받고 싶다면 인터페이스를 활용할 수 있다.
인터페이스는 상수와 메소드만을 구성 멤버로 가지며, 객체로 생성할 수 없기 때문에 생성자를 가질 수 없다. (=공통데이터는 표현할 수 없고 Body없이 공통 기능의 이름규칙만 표현 가능하다) 인터페이스는 상속이라 표현하지 않고 구현(implemetation)이라고 표현한다.
ex) public class MemberBoard extends Baseboard emplements Interboard
상속과 구현을 모두 표현할 경우에는 위와 같이 상속을 먼저 쓰고, 이후에 구현을 쓴다. 구현은 ',(컴마)'를 이용하여 여러개가 구현 가능하다. 또한 인터페이스끼리도 상속이 가능한데, 자식 클래스를 구현했을 때 해당 자식클래스의 부모 메소드까지 오버라이드(@Override)해서 구현해야 한다.
Q. 본래 인터페이스의 실제 용도는 무엇일까?
Example
import java.io.File; //파일전송
public class Baseboard implements InterBoard{
int page;
String name;
public void upload(String url, File file) {
//파일전송
System.out.println("파일전송");
}
@Override
public void requestUp() {
// TODO Auto-generated method stub
}
@Override
public void requestDelete() {
// TODO Auto-generated method stub
}
}
import java.io.File;
public interface InterBoard {
// 인터페이스는 바디가 없는 추상 메소드!
abstract void upload(String url, File file); //파일업로드
abstract void requestUp(); //글등록
abstract void requestDelete(); //글삭제
}
public class Freeboard extends Baseboard{
}
public class MemberBoard extends Baseboard {
}