// 인터페이스 선언
interface Animal {
void sound();
}
// 클래스 정의
class Dog implements Animal {
@Override
public void sound() {
System.out.println("멍멍!");
}
public void wagTail() {
System.out.println("꼬리 흔들!");
}
}
public class Main {
public static void main(String[] args) {
// Dog 객체 생성
Dog dog = new Dog();
// 상위 유형의 변수에 하위 객체의 참조값 할당
Animal animal = dog;
// 인터페이스 메소드 호출
animal.sound(); // Dog의 sound() 메소드가 호출됨(동적 바인딩)
// 하위 유형의 메소드는 호출 불가능 (Animal 인터페이스에는 없음)
// animal.wagTail(); // 컴파일 에러 발생
}
}