728x90
1. 사용방법
public interface studyInterface {
// 상수선언
public static final int MaxNum = 10;
public int minNum = 0;
// 추상메소드 선언
public void entrance();
public void exit();
}
- 인터페이스에서는 멤버변수 및 메소드를 추상적으로 선언한다.
public class StudyImplements implements studyInterface {
@Override
public void entrance() {
System.out.println("입구입니다.");
}
@Override
public void exit() {
System.out.println("출구입니다.");
}
}
- 인터페이스를 implements로 상속해서 추상적으로 선언된 메소드를 재정의하면서 구현한다.
public class studyMain {
public static void main(String[] args) {
StudyImplements studyImplements = new StudyImplements();
studyImplements.entrance();
studyImplements.exit();
System.out.println(studyImplements.MaxNum);
System.out.println(studyImplements.minNum);
// ※ 출력결과.
// 입구입니다.
// 출구입니다.
// 10
// 0
}
}
- studyImplements의 인스턴스를 생성하여 선언된 변수 및 메소드를 실행한다.
2. 인터페이스(interface) 특징
① 인터페이스는 구현(implements)할 메소드를 재정의해야한다. 그래서 메소드를 경우에따라 재사용할 수 있기 때문에 유지보수하기 편리하다.
② 백엔드에서 신규개발 시 interface에서는 설계만 하기때문에 기능 구현을 상속을 받으며 할 수 있어서 형상관리할 때 충돌이 발생하지 않고도 동시에 작업을 할 수 있다.
③ 객체지향 설계 5원칙중 OCP(Open Close Principle)를 지킬 수 있다.
- 즉 기존 시스템에서 사용하던 기능을 수정할 필요가 없이 확장만 할 수 있다.
3. 추상 클래스(abstract)와 차이
① 인터페이스에서는 메소드의 기능을 구현할 수 없다.
// 인터페이스
public interface studyInterface {
public void entrance(); // O
public void entrance() { // X
}
}
// 추상클래스
public abstract class studyAbstract {
public void entrance(); // X
public void entrance() { // O
}
}
- 인터페이스에서는 메소드 기능을 구현할 수 없다. 구현체(implements)에서 override로 정의해야한다.
하지만 추상클래스에서는 메소드 기능을 무조건 정의해야한다.
② 인터페이스는 2개 이상 상속이 가능하다.
// 인터페이스는 2개 이상 상속 가능
public class StudyImplements implements studyInterface, studyInterface2 {
}
// 추상 클래스는 2개 이상 상속 불가능
public class StudyImplements extends studyAbstract, studyAbstract2 {
}
- 인터페이스에서 2개 이상의 클래스를 상속 한 경우 각 클래스마다 중복되거나 중복되지 않은 메소드들을 재정의 할 수 있다.
728x90
'Language > Back End' 카테고리의 다른 글
Java] String(문자열) 비교 'equals()'와 '=='의 차이점 (0) | 2022.05.22 |
---|---|
Java ] Comparable과 Comparator의 개념 및 차이 (0) | 2022.03.10 |
Java ] Static이란? / Static 사용하는 이유 / Static 사용방법 (0) | 2021.12.21 |
Java ] int와 Integer의 차이 및 Wrapper Class 맛보기 (0) | 2021.12.14 |
Java ] Math.max와 Math.min 사용예제(10초) (0) | 2021.12.14 |