Go and find the API documentation for class like ArrayList. You will see it extends AbstractList, extends AbstractCollection, extends Object, implements List, implements RandomAccess, implements Collection, implements Iterable, implements Serializable, implements Cloneable.
Some of those are direct, some indirect, so there is no double inheritance.
You can call a class by the name of its superclass or by the name of an interface it implements, directly or indirectly.
You can call an ArrayList an Object, AbstractCollection, AbstractList, List, Cloneable, Serializable, etc etc.
Of course if you declare your type as an Interface (not a good example: risk of confusion with the keyword interface), you can use such methods as are available in that particular interface. Similarly with a superclass; you use the methods available in the superclass you declare. An interface doesn't directly inherit from java.lang.Object, but when it becomes a class (implemented with the implements keyword) it implicitly becomes an Object as well, so all classes always have the Object methods.