[Java] 인터페이스와 템플릿 메소드

·2024년 4월 12일
0

인터페이스

기능 설계시 사용
interface는 4가지로 구성되어있다.

  1. 상수 - public static fianl 키워드가 생략된 것
  2. 추상메소드 - abstract 키워드가 생략된것
  3. 공통적인 기능 - default메소드, static 메소드

인터페이스로도 객체 생성 가능
1. 여러개의 인터페이스를 같은 클래스에서 구현 가능

  1. 인터페이스를 사용하는 경우 전체 시스템의 기능을 정확하게 파악한 뒤에 구성 필요

  2. 인터페이스를 구현한 클래스가 있다면,
    인터페이스의 타입으로 객체 생성O
    인터페이스의 타입으로 인터페이스 객체 생성X


package step04;

public interface InterfaceExample {
    //static final이 생략됨
    double GRAVITY_CONSTRANT=9.8;
    //
    public int add(int num1,int num2);
}

추가적인 것?

  1. 추상클래스와 인터페이스는 동시에 사용이 가능하다
  2. 이 때 추상클래스로가 우선순위가 더 높다. (인터페이스, 추상클래스 모두 동일한 이름의 함수가 있을 경우 추상클래스의 함수 기준으로 오버라이딩)

템플릿 메소드

템플릿 메소드 패턴은 주로 추상클래스에서 이뤄진다.

만약 어떠한 객체가 원하는 기능을 실행하기 위해서는 여러개의 메소드를 수행한다고 하자.
ex - 자동차 주행을 위해서는 자동차 문을 열고, 시동을 켜고, 주행을 해야함
final public void로 이런 기능을 순서대로 넣어두면 코드를 축약할 수 있다.


public abstract class Car{


public abstract void close();
public abstract void turnOn();
public abstract void drive();

fianl public void run(){

	close();
    turnOn();
    drive();
}
}

차이

인터페이스는 다중 구현이 가능하다
내부적인
채워둘 것

profile
풀스택 호소인

0개의 댓글