| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Kaggle
- 딥러닝
- 생명정보학
- SVM
- 인공지능
- 바이오인포매틱스
- ncbi
- CNN
- 자바
- 이항분포
- BLaST
- 시그모이드
- 오류역전파
- Java
- 캐글
- 파이썬
- RNN
- MERS
- 결정트리
- 블록체인
- HMM
- 바이오파이썬
- AP Computer Science A
- 인공지능 수학
- 생물정보학
- AP
- bioinformatics
- 인공신경망
- COVID
- 서열정렬
- Today
- Total
데이터 과학
인터페이스 (interface) 본문
인터페이스(interface)는 다중 상속과는 크게 관련이 없는 형식입니다.
그 이유는 상속 extends의 개념과는 다른 implements를 사용합니다.
구체화가 되어 있지 않아서 객체로도 선언 할 수도 없고, 더군다나 일반 메소드는 가지고 있을 수도 없습니다. 그냥 명세적인 의미로 추상화된 선언만 있을 뿐입니다.
그리고, 인터페이스끼리의 다중상속은 가능하지만 일반 클래스로의 다중 상속은 불가능합니다.
인터페이스는 추상메소드와 상수(constant)만 선언할 수 있습니다.
interface PlayingCard {
public static final int SPADE = 4;
final int DIAMOND = 3; // public static final int DIAMOND=3;
static int HEART = 2; // public static final int HEART=2;
int CLOVER = 1; // public static final int CLOVER=1;
public abstract String getCardNumber();
String getCardKind(); // public abstract String getCardKind();로 간주된다.
}
다음 예제를 한번 봅시다.
interface 자동차엔진 {
public String 최대속도();
}
class 고속엔진 implements 자동차엔진 {
public String 최대속도() {
return "200km";
}
}
class 저속엔진 implements 자동차엔진 {
public String 최대속도() {
return "100km";
}
}
class 엔진제조사 {
자동차엔진 엔진;
엔진제조사() {
엔진 = new 고속엔진();
}
자동차엔진 엔진함수() {
return 엔진;
}
}
public class engine {
public static void main( String[] args) {
자동차엔진 엔진 = new 엔진제조사().엔진함수();
System.out.println(엔진.최대속도());
}
}
결과
200km
'프로그래밍 언어론 > JAVA 기초' 카테고리의 다른 글
| 부동소수점 연산 - BigDecimal (0) | 2023.03.20 |
|---|---|
| static 메소드 (0) | 2023.03.19 |
| 추상 클래스와 오버라이딩 (4) | 2022.11.13 |
| 상속(Inheritance) (10) | 2022.11.06 |
| 메소드 오버로딩 (7) | 2022.11.05 |