추상 클래스와 메서드에는 abstract
키워드가 붙는다. 추상 메서드는 abstract
키워드와 함께 구현 부분 없이 선언부만 작성한다. 추상 메서드를 포함하는 추상 클래스는 class 앞에 abstract
를 작성해야 한다.
<aside> 💡 Inter(간/사이) + face*(면)*: 두 객체 간 연결과 소통**을 돕는 다리 역할
</aside>
interface
는 구현해야 하는 동작을 작성해 놓고 구현을 강제하도록 하는 일종의 명세서다. 주로 여러 클래스에서 공통적으로 행하는 동작을 정의하고 싶을 때 사용한다.
interface Programmable {
String[] getTechStack();
void doProgramming();
}
class Programmer extends Person implements Programmable {
String[] getTechStack() {
return techStack;
}
void doProgramming() {
... //구현내용
}
}
모든 메서드는 컴파일 과정에서 자동으로 public abstract
제어자로 선언된다.
여기서 (default)
로 아무 접근제어자 없이 작성한다면 그것은 public
이 생략된 것이다. 일반적으로 클래스, 멤버변수, 메서드, 생성자에 접근 제어자가 지정되어 있지 않으면 (default)
인 경우와 다르다.
인터페이스를 구현하는 클래스는 implements
키워드를 사용하여 구현한다. 또한 상속과 달리, 한 클래스가 여러 인터페이스를 구현하는 다중 구현이 가능하다.
public class MyClass implements Interface1, Interface2 { ... }