인터페이스 (Interface)Java2022. 12. 4. 15:50
Table of Contents
728x90
728x90
인터페이스
- 모든 기능을 추상화로 정의만 하고 구현은 하지 않은 것
- 클래스와 인터페이스는 서로 상속받을 수 없다. 인터페이스끼리 상속가능
- 클래스는 다중 상속이 불가능하지만 인터페이스는 다중 구현이 가능하다
- 일반 메서드를 사용할 수 없다
- 필드는 상수 값만 가질 수 있다
- implements 키워드를 사용하여 인터페이스를 '상속'이 아닌 '구현'한다.
interface A { // 인터페이스
abstract void test1(); // 추상 메서드
abstract void test2();
}
interface B {
void test3(); // 인터페이스에서 abstract 키워드를 생략할 수 있다.
void test4();
}
class C implements A , B { // 인터페이스는 다중 구현이 가능하다.
@Override
public void test1() {
}
@Override
public void test2() {
}
@Override
public void test3() {
}
@Override
public void test4() {
}
}
- 인터페이스 타입으로 객체를 구현할 수 있다
interface Person {
}
class Children implements Person{
}
class Student implements Person{
}
class Adult implements Person{
}
public class Exapmle {
public static void main(String[] args) {
Person c = new Children(); // 인터페이스의 타입으로 객체 생성
Person s = new Student();
Person a = new Adult();
}
}
추상클래스 vs 인터페이스
추상클래스
1. 인스턴스 생성보다는 상속 목적으로 사용한다
2. 추상 메서드 및 일반 메서드, 생성자, 필드도 포함할 수 있다
인터페이스
1. 제공할 기능을 정의하는 데 사용한다
2. 추상 메서드와 상수만 포함할 수 있다
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!