Java/정리

인터페이스

낭구리 2021. 8. 31. 14:06

인터페이스란?

● 모든 메서드가 추상 메서드로 선언됨 public abstract

● 모든 변수는 상수로 선언됨 public static final

interface 인터페이스 이름{

    public static final float pi = 3.14F;
    public void makeSomething();
}

● 자바 8 부터 디폴트 메서드(default method)와 정적 메서드(static method) 기능의 제공으로 일부 구현 코드가 있음

인터페이스 정의와 구현

인터페이스 구현과 형 변환

● 인터페이스를 구현한 클래스는 인터페이스 형으로 선언한 변수로 형 변환 할 수 있음

● Calc calc = new CompleteCalc();

● 상속에서의 형 변환과 동일한 의미

● 클래스 상속과 달리 구현 코드가 없으므로 여러 인터페이스를 구현할 수 있음 ( cf. extends)

● 형 변환되는 경우 인터페이스에 선언된 메서드만을 사용가능함

인터페이스가 하는 일

● 클래스나 프로그램이 제공하는 기능을 명시적으로 선언

● 일종의 클라이언트 코드와의 약속이며 클래스나 프로그램이 제공하는 명세(specification)

● 클라이언트 프로그램은 인터페이스에 선언된 메서드 명세만 보고 이를 구현한 클래스를 사용할 수 있음

● 어떤 객체가 하나의 인터페이스 타입이라는 것은 그 인터페이스가 제공하는 모든 메서드를 구현했다는 의미임

● 인터페이스를 구현한 다양한 객체를 사용함 - 다형성

인터페이스를 활용한 dao 구현하기

● DB에 회원 정보를 넣는 dao(data access object)를 여러 DB 제품이 지원될 수 있게 구현함

● 환경파일(db.properties) 에서 database의 종류에 대한 정보를 읽고 그 정보에 맞게 dao 인스턴스를 생성하여 실행될 수 있게 함

 

'Java > 정리' 카테고리의 다른 글

Object클래스  (0) 2021.09.01
인터페이스 활용예제  (0) 2021.08.31
ArrayList  (0) 2021.08.30
객체 지향 프로그래밍으로 구현해보기 (ex문제)  (0) 2021.08.30
다형성  (0) 2021.08.30