일반적으로 Java에서 클래스는 2가지로 구분
1. 일반클래스
2. 추상클래스
(인터페이스는 클래스가 아니다)
public abstract class Test {
void run();
abstract void test();
}
추상메서드(아직 구현되지 않은 메서드) 0개를 가지고 있다.
일반 메소드, 변수
상속받기 extends
class Dog extends Test{
void test(){
...
}
}
확장, 상속을 의미함으로써 물려주는 개념. 부모-자식 관계인 계층 구조를 나타냄
interface Vehicle{
abstract void run();
abstract void walk();
}
class Dog implements Vehicle{
void run(){
...
}
void walk(){}
}
상속 개념이 아닌 동일한 동작을 위한 구현을 강제화
하나의 규약, 즉 구체적인 약속 같은 것으로 인해 협업에 필수적이라고 볼 수 있다.
큰 프로젝트일수록 또는 개발 인원이 많을 경우 인터페이스를 통해 많은 이점을 얻게 된다.