인터페이스에 있는 모든 메서드가 추상메서드이기 때문에 메서드앞에 abstract 키워드를 따로 붙이지 않습니다.
인터페이스의 사용방법
public interface 인터페이스이름 [extends 인터페이스2,,,] { .....; // 상수선언 .....; // 이름만 있는 메서드 선언 }
자바에서 추상클래스와 유사한 인터페이스를 만든이유
1. 단일상속의 한계를 보완합니다. :클래스는 단일상속만 가능하기때문에 클래스의 확장성 , 재사용성에 한계가 있습니다. 하지만 인터페이스는 다중상속이 가능하기때문에 단일상속의 문제를 어느정도 보완할수 있습니다.
2. 클래스 명세표를 만듭니다. :인터페이스는 내용이 없는 메서드로 구성되기 때문에 인터페이스를 상속받은 클래스는 반드시 메서드를 재정의 ( 오버라이딩 ) 해서 사용합니다.
인터페이스 사이의 상속
public interface 인터페이스 이름 extends 인터페이스이름 ,,, { ...; // final 상수 ...; // 메서드 }
클래스에서의 구현
public class 클래스이름 implements 인터페이스 이름 ,,, { ...; //멤버 ...; //구현 메서드 }
Singleton
소프트웨어 디자인 패턴에서 싱글턴 패턴을 따르는 클래스는, 생성자가 여러차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와같은 디자인 유형을 싱글턴 패턴이라고 한다. 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DateBase Connection Pool)와 같은 상황에서 많이 사용된다.
final class Singleton{
private static Singleton ss ;
private Singleton() {}
public static Singleton getInstance() {
if (ss==null) {
ss = new Singleton();
}
return ss;
}
}