///////
Search

인터페이스

날짜
2022/09/27
텍스트
추상 메서드만 가질 수 있다 (메서드 몸체가 없다)
→ 자식 클래스가 구현해야 한다.
implements 사용
객체 생성이 불가하다. → 참조 변수 사용가능
예제 코드
interface Printable{ // OS가 만든 기본 규격 드라이버 // 기준을 만들어주면 하청/협력사들이 printable 인터페이스에 맞춰서 드라이버 생산 public abstract void print(String doc); }
Java
복사
class SPrinterDriver implements Printable { // 삼성이 만든 드라이버 @Override public void print(String doc){ System.out.println("삼성 프린터입니다."); System.out.println(doc); } }
Java
복사
class LPrinterDriver implements Printable { // LG가 만든 드라이버 @Override public void print(String doc){ System.out.println("LG 프린터입니다."); System.out.println(doc); } }
Java
복사
public class Interface { public static void main(String[] args) { Printable prn = new SPrinterDriver(); prn.print("출력해주세요."); prn = new LPrinterDriver(); prn.print("출력해주세요."); } }
Java
복사
printable 인터페이스를 만들어서 내부에 print 메서드를 생성했다.
printable 인터페이스를 상속하면 무조건 print 메서드를 Override 해야한다.

왜 Interface를 많이 쓴다고 하는가? (좀 더 내용 다듬어야 함)

예시) DB에는 종류가 mySql, Mongo 등등 종류가 많다. 각 DB마다 필요한 데이터에 접근해서 데이터를 꺼내오는 과정이 다르다.
우리에게 필요한 것은 DB 갔다오기(); 메서드 인터페이스로 DB 갔다오기();를 만들면 DB 갔다오기(); 를 implements 한 클래스(mySql 데이터 접근, Mongo 데이터 접근)들을 따로 만들면 된다.
(이러한 클래스들은 자동으로 만들어주는 기능이 있다)
행동만 지정해주면 행동을 수행하는 객체는 스프링(DI)이 해줌