Hallo zusammen,
ich bin neu in Java und verstehe folgendes nicht:

Ich implementiere ein Interface in einer Klasse. Damit ist ein Objekt meiner Klasse automatisch auch ein Objekt vom Typ des Interfaces.
Meine Klasse hat eine Methode mehr als das Interface. Wenn ich ein Objekt meiner Klasse einer Variable vom Typ des Interfaces zuweise, muss ich einen Cast durchführen, um diese zusätzliche Methode zu verwenden. (Oder das Objekt direkt einer Variablen vom Typ der Klasse zuweisen.)

Warum?

Ich vermute, dass es um Typsicherheit geht. Verstehe aber nicht, warum es nicht ohne dies auch Typsicherheit gibt. getClass() liefert mir immer korrekt zurück, dass es sich um ein Objekt meiner Klasse handelt. Auch dann, wenn es sich um eine Variable vom Typ des Interfaces handelt. Wozu also ein Cast?

Ist das Zuweisen eines Objekts zu einer Variablen vom Typ des Interfaces ein impliziter Cast?