Language/JAVA
[JAVA 기초 이론] 인터페이스 interface
오류나면꽥꽥
2024. 2. 20. 13:37
인터페이스
- 객체 지향 프로그래밍에서 특정한 동작이나 기능을 정의하는 추상적인 개념
- 클래스가 가져야 하는 메서드의 시그니처를 정의하고, 해당 메서드들을 구현하는 클래스는 인터페이스를 구현
- 다형성(polymorphism)을 구현하고, 객체 간의 관계를 정의
// 인터페이스 정의
interface Animal {
void sound(); // 추상 메서드
}
// 인터페이스를 구현하는 클래스
class Dog implements Animal {
public void sound() {
System.out.println("Dog barks"); // 추상 메서드 구현
}
}
✋ 인터페이스 사용 이유
▶ 다중 상속 가능
자바는 클래스 딱 한개만 상속받을 수 있는데 인터페이스는 여러 개의 부모 클래스를 가질 수 있습니다.
▶ 코드의 유연성과 확장성을 높이고, 객체 간의 결합도를 낮추는 데에 사용
소프트웨어의 유지보수성과 확장성을 향상시키는 데에 중요한 역할
📌 인터페이스 특징
- 다중 상속
- 클래스는 여러 개의 인터페이스를 동시에 구현 - 추상 메서드만 보유
- 인터페이스는 추상 메서드만 가지고 있습니다. - 구현 강제
- 클래스가 인터페이스를 구현한다면, 해당 인터페이스에서 정의된 모든 메서드를 반드시 구현 - API의 일부
- 자바 API에서 많이 사용되며, 클래스와 클래스 간의 연결고리를 제공
- 다형성의 지원
- 상속과 메서드 오버라이딩(재정의)에 기반으로 다양한 객체들을 동일한 방식으로 다룰 수 있습니다.
다형성?
객체 지향 프로그래밍의 중요한 개념 중 하나로, 동일한 메서드 호출에 대해 다양한 동작을 수행할 수 있는 능력
ex)
// 인터페이스 정의
interface Animal {
void sound(); // 추상 메서드
}
// 인터페이스를 구현하는 클래스
class Dog implements Animal {
public void sound() {
System.out.println("Dog barks"); // 추상 메서드 구현
}
}
// 인터페이스를 구현하는 다른 클래스
class Cat implements Animal {
public void sound() {
System.out.println("Cat meows"); // 추상 메서드 구현
}
}
// 인터페이스를 사용하는 코드
public class Main {
public static void main(String[] args) {
Animal dog = new Dog(); // Dog 클래스의 객체 생성
Animal cat = new Cat(); // Cat 클래스의 객체 생성
// 각 동물이 소리를 내도록 호출
dog.sound(); // Dog 클래스의 sound() 메서드 호출
cat.sound(); // Cat 클래스의 sound() 메서드 호출
}
}
출력)
더보기
Dog braks
Cat meows
✅ 다중 상속
ex)
class ParentClass {
public void p() { System.out.println("일반메서드"); }
}
interface A {
public void a();
}
interface B {
public void b();
}
class Test extends ParentClass implements A, B, C {
public void a() {}
public void b() {}
}
인터페이스끼리도 상속할 수 있다.
interface A {
public void a();
}
interface B extends A {
public void a();
}
[JAVA/JAVA] - [JAVA 기초 이론] 인터페이스 / 추상 클래스 / 상속 비교 정리
[JAVA 기초 이론] 인터페이스 / 추상 클래스 / 상속 비교 정리
인터페이스 (Interface) 인터페이스는 클래스에 대한 약속을 정의합니다. 클래스가 해당 인터페이스를 구현하면 인터페이스에 정의된 모든 메서드를 반드시 구현해야 합니다. // 인터페이스 정의 i
coding-bird.tistory.com