728x90
인터페이스(Interface)란?
자바에서는 인터페이스를 통해 다중 상속을 지원한다.
인터페이스란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미한다.
즉, 특정 기능을 개발하는 데 있어 공통적인 기능을 명시하고 강제적으로 구현하게끔 하는 역할을 한다.
인터페이스는 추상 메소드와 상수만을 포함한다.
public interface Animal {
void cry();
}
public class Cat implements Animal {
@Override
public void cry() {
System.out.println("냐옹냐옹!");
}
}
public class Dog implements Animal {
@Override
public void cry() {
System.out.println("멍멍!");
}
}
public class Main {
public static void main(String[] args) {
Cat cat = new Cat();
Dog dog = new Dog();
cat.cry();
dog.cry();
}
}
디폴트 메소드(Default Method)
자바8 버전 이후부터는 디폴트 메소드를 사용할 수 있다.
인터페이스의 메소드는 몸통(구현체)을 가질 수 없지만 디폴트 메서드를 사용하면 실제 구현된 형태의 메서드를 가질 수 있다.
public interface Animal {
String getFood();
default void printFood() {
System.out.printf("my food is %s\n", getFood());
}
}
스태틱 메소드(Static Method)
자바8 버전 이후부터는 인터페이스에 스태틱 메소드를 사용할 수 있다.
인터페이스에 스태틱 메소드를 구현하면 일반 클래스의 스태틱 메서드를 사용하는 것과 동일하게 사용할 수 있다.
public interface Animal {
String getFood();
default void printFood() {
System.out.printf("my food is %s\n", getFood());
}
int LEG_COUNT = 4; // 인터페이스 상수
static int speed() {
return LEG_COUNT * 30;
}
}
728x90
'2022 하계방학 SW 집중교육' 카테고리의 다른 글
[Java] Package (0) | 2022.08.15 |
---|---|
[Java] Thread (0) | 2022.08.15 |
[Github] 파일 업로드 (0) | 2022.08.11 |
[Java] Coding Convention (0) | 2022.08.11 |
[Java] this (0) | 2022.08.11 |