I found a class like this:
public class Computer implements Serializable {
private static final long serialVersionUID = 1L;
//...
By default any class even if we don't extend any super class, extends java.lang.Object class. So it calls Object constructor.
By the inheritance concept, we can have following code compiled properly.
Object obj = new Computer();
Even, in fact, your interface reference can be assigned to java.lang.Object reference.
interface ICommand
{
}
class Computer implements ICommand
{
}
class Test
{
public static void main(String[] arg)
{
ICommand ic = new Computer();
Object obj = ic; // 'ic' is an interface reference
}
}
by this way, java.lang.Object is also super interface (this is not exact technical term ) for all interfaces.