티스토리 뷰
인터페이스 (interface)
https://whatisthenext.tistory.com/36
https://gitlab.com/easyspubjava/javacoursework/-/tree/master/Chapter3/3-11
구현 코드가 없다, 여러개 구현 가능
모든 메서드가 추상 메서드로 선언된다. (public abstract)
모든 변수는 상수로 선언된다. (public static final)
점선 화살표로 표시
인터페이스를 구현한 클래스는 인터페이스 형으로 선언한 변수로 형 변환 가능
(인터페이스에 선언된 메서드만 사용 가능)
- ex) interface메서드 C = new 클래스();
interface를 사용하는 이유
- 클래스나 프로그림이 제공하는 기능을 명시적으로 선언
- client와 프로그램 사이를 연결해 주는 것
// Calc.java // interface
public interface Calc {
double PI = 3.141592;
int add(int n1, int n2);
int sub(int n1, int n2);
int mul(int n1, int n2);
}
// Calculator.java // 상위 클래스
public abstract class Calculator implements Calc {
// interface에 있는 메서드를 모두다 구현하지 않았기 때문에 abstract입니다.
@Override
public int add(int n1, int n2) {
return n1 + n2;
}
@Override
public int sub(int n1, int n2) {
retur n1 - n2;
}
}
// CasioCalc.java // 하위 클래스
public class CasioCalc extends Calculator {
@Override
public int mul(int n1, int n2) {
return n1 * n2;
}
public void showInfo() {
System.out.prinln("출력 완료");
}
}
//Test.java
public class Test {
public static void main(String[] args) {
Calc calc = new CasioCalc();
int n1 = 10;
int n2 = 10;
System.out.println(calc.add(n1, n2));
//...
}
}
반응형
'Tip and Error > JAVA' 카테고리의 다른 글
default & static & private (0) | 2021.04.16 |
---|---|
인터페이스 활용 (interface) (0) | 2021.04.14 |
추상 클래스(abstract class) & 템플릿 메서드(final) (0) | 2021.04.13 |
instance 형 확인 (instanceof) (0) | 2021.04.12 |
Override (0) | 2021.04.08 |
공지사항
최근에 올라온 글