자바에서 다중상속은 인터페이스만 가능합니다. 자바는 클래스를 두 가지 이상 상속하지 못합니다. 그럼 아래 소개될 내용은 인터페이스에 대한 내용이 겠죠. 인터페이스는 일종의 추상클래스이며 클래스처럼 메서드를 가질 수 있지만 기능을 구현할 수 없습니다. 그리고 멤버변수도 가질 수 없으며 상수만 가능합니다. ▼ 인터페이스 클래스 작성방식은 아래와 같습니다. 인터페이스에서 포함될수 있는 것들은 상수와 메서드 원형뿐입니다. 그리고 두가지 멤버 변수는 public static final 과 public abstract 이어야 합니다. 보통 생략해서 많이 사용하죠. interface 인터페이스이름 {
▼ 자바 클래스는 부모클래스 하나만 상속할수 있습니다. extends 를 이용한 클래스 상속은 하나만 되고 두개 이상은 인터페이스만 됩니다. 인터페이스를 implements 하는 것은 상속이 아니라 구현한다고 해야 합니다. 이렇게 두개 이상의 구현 가능한 인터페이스를 콤마(,) 로 구분해서 추가하시면 됩니다. 아래 소스와 같이 인터페이스에서 구현해야 할 함수는 클래스에서 필히 추가해야 겠죠.
▼ 이외에 상속과 구현을 동시에 할수도 있습니다. extends 키워드를 이용해 클래스 하나와 implements 로 인터페이스를 하나 이상 추가하는 것이죠.
▼ 인터페이스는 인터페이스를 통해서 확장시킬수 있습니다. 추상화를 통해 좀더 상위 개념이 있다면 인터페이스로 하나 뽑아 내고 하위 인터페이스에서 상속 받으시면 아래와 같은 구조가 됩니다. 상속을 위한 키워드는 extends 가 되겠죠. 만약 클래스가 Hockey 인터페이스를 구현할려면 Sports 에 있는 두개의 함수와 Hockey 에 있는 4개의 함수를 합쳐 총 6개가 되어야 합니다. Football 은 5개 겠죠. 이렇게 상속받은 상위 인터페이스 항목도 전부 합쳐서 구현해야 합니다.
▼ 자바 클래스는 하나의 부모 클래스를 상속할수 있지만 인터페이스는 다중 상속이 가능합니다. extends 키워드와 콤마를 이용해서 여러 개 인터페이스를 지정하시면 됩니다.
▼ 흔히 인터페이스 클래스는 DB 연결에 많이 사용합니다. DB 의 종류는 많습니다. 프로젝트에서 전체 프로그램을 완성해 가는 시점에 MySql 에서 Oracle 로 바뀌었다면 어떻게 해야 할까요? 인터페이스로 구현하지 않았다면 모든 참조 소스는 다 바꿔야 합니다. 하지만 인터페이스를 참조해서 구현했다면 Oracle 연결 클래스만 바꾸면 끝나겠죠. 아래 처럼 소스에서는 IDBConnect.connect() 함수를 사용하겠죠. MySql 에서 Oracle 로 바뀐다면 OracleConn 으로 대체 해주시면 간단하게 해결 되겠죠. |