Dlaczego metody klasy Object są dostępne w interfejsie?

Następujący interfejs i klasy zostały pomyślnie skompilowane. Problem został wymieniony w poniższym wyjściu:

interface MyInterface{}

class MyClass implements MyInterface{}

class InterDoubt{

    static MyInterface mi ;//= new MyClass() ;

    public static void main(String[] args){
        System.out.println("X") ;

        try{
            synchronized(mi){
                try{
                    mi.wait(4000) ;
                }
                catch(InterruptedException ie){
                    System.out.println("Exception occured at main.") ;
                }
            }
        }
        catch(Exception e){
            System.out.println("voilla, MyInterface is an interface,\n" + 
                       "then why compiler allows compilation of\n" +
                       "mi.getClass(), mi.wait().\n" +
                       "Or how the methods of Object class are available in an interface."
            );
        }

        System.out.println("Y") ;
    }
}

wyjście:

X

voilla, MyInterface to interfejs,

to dlaczego kompilator pozwala na kompilację

mi.getClass (), mi.wait ().

Albo jak metody klasy Object są dostępne w interfejsie.

Y

Edytowane : - Przyjmuję odpowiedź z disown, ponieważ jest to najbardziej wyjaśniające. Ale po przeczytaniu odpowiedzi pojawia się jeszcze jeden problem: -

"Pamiętaj, jeśli interfejs próbuje zadeklarować publiczną metodę instancji zadeklarowaną jako „końcowa” w klasie Object, spowoduje to błąd podczas kompilacji. Na przykład „public final Class getClass ()” jest publiczną metodą instancji zadeklarowaną jako „final” w klasie Object, a zatem jeśli interfejs próbuje zadeklarować metodę z tą sygnaturą, kompilacja zakończy się niepowodzeniem„(Cytat z wyjaśnień).

to dlaczego następujący kod jest pomyślnie kompilowany: -

interface MyInter{
    public void method() ;
}

class MyClass implements MyInter{

    public final void method() {
        .......
        .......
              .......
    }

}

questionAnswers(5)

yourAnswerToTheQuestion