Java는 핵심 기능으로 상속을 지원하고, 상속을 이용해 추상화 같은 여러 객체 지향 원칙을 구현할 수 있어요.
클래스는 extends 키워드로 다른 클래스를 확장할 수 있고, implements 키워드로 인터페이스를 구현할 수 있어요.
접근 제어자는 클래스의 멤버 변수와 메서드에 대해 다른 클래스(또는 코드의 어느 위치에서든)에서 접근할 수 있는지에 관한 규칙을 정의해요.
접근 제어자는 네 가지가 있어요:
privatepublicprotected이들에 대해 더 알고 싶다면 이 글에서 읽어볼 수 있어요.
이 두 개념은 매우 비슷해서 자주 혼동돼요.
interface Animal() {
public void bark();
}
class Dog implements Animal {
public void bark() {
System.out.println("Bark");
}
}
여기서 Dog는 Animal과 IS-A 관계예요.
interface Engine {
}
class Car {
private Engine engine;
}
여기서 Car는 Engine과 HAS-A 관계예요.