Hallo Andy,
MySocket mySocket = socket;
Nein, da würde schon der Kompiler einen Fehler ausgeben.
Was geht, ist z.b. so etwas:
Socket socket = new MySocket();
Wenn Du nun wieder auf die Eigenschaften von MySocket zugreifen willst, kannst Du casten:
((MySocket)socket).mySocketMethode();
Casting von Objekten ist keine Umwandlung. Es ist lediglich ein Hinweis an den Kompiler, dass Du weist, dass es sich um die Instanz einer bestimmten Klasse handelt.
(A)obj funktioniert also genau dann, wenn obj instanceof A wahr ist.
Grüße
Daniel