@Override: @Override는 자바 어노테이션 중 하나로, 메소드가 상위 클래스나 인터페이스의 메소드를 오버라이드하고 있음을 나타냅니다. 이 어노테이션은 컴파일러에게 이 메소드가 오버라이드되어야 함을 알려주므로, 실수로 메소드 시그니처를 잘못 작성하거나 상위 클래스의 메소드를 오버라이드하지 않는 경우 컴파일 오류를 발생시킵니다.
interface: 인터페이스는 메소드와 상수만을 가질 수 있는 참조 타입입니다. 인터페이스는 추상 메소드의 집합으로, 객체가 어떤 행동을 해야 하는지 정의한 것입니다. 클래스는 인터페이스를 구현하여 인터페이스에서 정의한 메소드를 사용할 수 있습니다. 인터페이스는 다중 상속을 지원하며, 클래스와 달리 여러 개의 인터페이스를 동시에 구현할 수 있습니다.
interface 안에 올 수 있는 것: 인터페이스에는 주로 두 가지 요소가 포함됩니다.
public, static, final 키워드를 사용하여 선언되며, 인터페이스를 구현하는 클래스에서 이 상수들을 사용할 수 있습니다. abstract 키워드: abstract 키워드는 메소드나 클래스가 추상적임을 나타냅니다. 추상 메소드는 선언만 있고 본체는 없는 메소드를 말하며, 이 메소드는 하위 클래스에서 반드시 구현해야 합니다. 추상 클래스는 하나 이상의 추상 메소드를 포함하는 클래스를 말하며, 이 클래스는 직접 인스턴스화할 수 없습니다. 대신 하위 클래스를 생성하여 추상 클래스의 메소드를 구현하고 사용합니다.