[Java/기초] InterfaceJAVA/JAVA 기초2024. 1. 14. 23:54
Table of Contents
728x90
반응형
Interface란??!!!
클래스와 관련된 추상화 매커니즘을 제공한다. 클래스가 특정한 ㅁ[서드를 구현할 것을 보장하는데 사용한다.
'interface'키워드를 사용해서 인터페이스를 정의할 수 있다.
인터페이스는 특징이 5가지가 있다.
1. 추상 메서드 (Abstract Method)
인터페이스는 추상 메서드를 정의할 수 있다. 단지 선언만 할 수 있다.
// 인터페이스 정의
interface MyInterface {
void myMethod(); // 추상 메서드 (abstract method) 선언
}
2. 상속(Constant)
인터페이스는 상수을 정의할 수 있다.
interface MyInterface {
// 추상 메서드
void abstractMethod();
}
3. 다중 상속 지원
클래스는 단일 상속만 지원하지만. 인터페에시는 다중 상속을 지원한다. 클래스가 여러개의 인터페이스를 implements할 수 있다.
class MyClass implements MyInterface1, MyInterface2 {
// MyClass는 MyInterface1과 MyInterface2를 모두 구현
// ...
}
4. 디폴트 메서드, 정적 메서드
Java8 부터 인터페이스에 디폴트,정적 메서드를 정의할 수 있게 되었다.
interface MyInterface {
default void defaultMethod() {
System.out.println("Default Method");
}
}
5. 다형성(polymorphism)
클래스의 인스턴스 변수로 선언할 때, 해당 클래스의 데이터 타입으로 선언하지 않고 부모 클래스나 인터페이스를 데이터 타입으로 선언할 수 있다. 이때 여려 형태지만 인스턴스로 만든 객체같이 행동하는 것을 다형성이라고 한다.
interface Calculable {
double PI = 3.14;
int sum(int v1, int v2);
}
interface Printable {
void print();
}
class RealCal implements Calculable, Printable {
public int sum(int v1, int v2) {
return v1 + v2;
}
public void print() {
System.out.println("this is RealCal!!!");
}
}
public class InterfaceApp {
public static void main(String[] args) {
Calculable c = new RealCal();
Printable d = new RealCal();
System.out.println(c.sum(2, 1));
d.print();
System.out.println(c.PI);
}
}
728x90
반응형
'JAVA > JAVA 기초' 카테고리의 다른 글
[Java/기초] Static, Final (0) | 2024.03.04 |
---|---|
[Java/기초] Getter Setter (0) | 2024.02.13 |
[Java/기초] 상속 (1) | 2024.01.14 |
[JAVA/기초] 간단한 객체지향 인스턴스 OPP (1) | 2023.12.22 |
[JAVA/기초] 반복문 (0) | 2023.12.22 |
@코딩하는 자연대생 :: 자연대생도 코딩을 하고 싶어
Coding, Software, Computer Science 내가 공부한 것들 잘 이해했는지, 설명할 수 있는지 적는 공간