Overriding Object class methods within an interface in Java
<p>Let's consider the following simple code in Java.</p>

<pre><code>package temppkg;

interface Interface
{
    @Override
    public abstract boolean equals(java.lang.Object arg);

    @Override
    public abstract String toString();

    public void show();
}

final class Demo implements Interface
{
    public void show()
    {
        System.out.println("Method invoked.");
    }
}

final public class Main
{
    public static void main(String...args)
    {
        new Demo().show();
    }
}
</code></pre>

<p>In the above code snippet, the interface  named <code>Interface</code> has some object class methods and they are with the <code>@Override</code> annotation even though they are <strong>abstract</strong>. Now, the class <code>Demo</code> has implemented <code>Interface</code> and has <strong>not</strong> implemented the <code>equals()</code> and  the <code>toString();</code> methods still the compiler doesn't complain and the program is running successfully why?
What is the relation between interfaces and the object class in Java?</p>
