dead을 가져 오게되어 죄송합니다. 그러나 나는 아직도 명세서의이 부분이 무엇을 의미하는지 명확히 이해하지 못한다. 인터페이스는 직접 슈퍼가 없으면암시 적 수퍼 인터페이스를 이해하려고 시도
후 인터페이스 내재적 특성 의 리턴 형 R은 공용 추상 멤버 메소드 m 선언 및 서명의 각 공개 인스턴스 메소드 m에 대응하는 절 t를 슬로우 , 반환 유형 r 및 throws 절 t 이 같은 서명, 동일한 반환 형식 및 호환 가능한 throws 절이있는 메서드가 인터페이스 인 에 의해 명시 적으로 선언되어 있지 않으면 Object에 선언됩니다. 인터페이스에서 명시 적으로 이 m에서 Object에 final로 선언 된 경우 m을 선언하면 컴파일 타임 오류가 발생합니다.
interface Testing
{
void test();
}
public class Test{
public static void main(String[] args) {
Testing t = new Testing(){
@Override
public void test(){
}
};
t.test();
t.toString();
}
}
지금 사양 상태로 위 또한
interface Testing
{
void test();
String toString();
//other non-final methods of Object
}
public class Test{
public static void main(String[] args) {
Testing t = new Testing(){
@Override
public void test(){
}
};
t.test();
t.toString();
}
}
로 변경됩니다 감안할. 인터페이스 계층 구조가 있는지 확인한 다음 모두가 이러한 추상 메소드를 얻습니다.
무엇이 정확하게 당신의 질문입니까? 모든 클래스는 구현 된 인터페이스에 관계없이 Object의 메서드를 상속받습니다. – Hachi
내 질문은 - "내 이해가 맞습니까?" 또한 "이것의 필요성은 무엇입니까?" – John
예, 이해가 정확합니다. 명시 적 또는 암시 적으로 인터페이스에 메서드가있는 한.그것들을 사용하는 다른 클래스 나 인터페이스에는 아무런 문제가 없다. – sasidhar