abstract class AbstractAnimal {
public abstract void sound();
public void move() {
System.out.println("동물이 움직입니다.");
}
}
move(): 이 메서드는 추상 메서드가 아니다. 따라서 자식 클래스가 오버라이딩 하지 않아도 된다.public interface InterfaceAnimal {
//public abstract void sound();
//public abstract void move();
void sound();
void move();
}
public abstract 키워드 생략 가능(권장)인터페이스와 멤버 변수
public interface InterfaceAnimal {
//public static final double MY_PI = 3.14;
double MY_PI = 3.14;
}
public, static, final이 모두 포함되었다고 간주(생략 권장)인터페이스를 사용해야 하는 이유