본문 바로가기

Java

인터페이스를 사용하는 이유

메인메소드가 있는 Program클래스 -> A클래스의 객체 a 참조 -> A클래스는 B클래스의 객체 b 참조

이러한 구조에서 특정 클래스가 미완성 or 누락상태일때

A에서 참조할 B클래스의 객체 b를 생성할 수 없으므로 오류가 발생

 

 

interface 구현시에는 메소드나 필드변수의 내용은 구현하지 않음.(접근자도 X)

 

인터페이스 X를 만들고 B는 X를 implements함.

이렇게 인터페이스를 통해 다른 클래스와 결합시키면 내용물이 구현되어 있지 않아도 프로그램의 마감이 완성됨.

 

※ 인터페이스와 추상클래스의 차이

 - 추상클래스는 일부 내용은 구현해도 O, 인터페이스는 전체 내용을 추상화함.

 - 추상클래스는 다중상속이 불가능하나 인터페이스화하면 다중상속이 가능.

 - 추상클래스의 목적은 부모클래스를 상속받아 기능을 확장

 - 인터페이스의 목적은 특정메소드가 반드시 존재하도록 강제함으로써 결합시킬 클래스들의 동작을 규격화함.