635 Stimmen

Können wir eine abstrakte Klasse instanziieren?

In einem meiner Interviews wurde ich gefragt: "Können wir eine abstrakte Klasse instanziieren?"

Meine Antwort war: "Nein, das können wir nicht". Aber der Interviewer sagte mir: "Falsch, wir können."

Ich habe ein wenig darüber gestritten. Dann sagte er mir, ich solle es zu Hause selbst versuchen.

abstract class my {
    public void mymethod() {
        System.out.print("Abstract");
    }
}

class poly {
    public static void main(String a[]) {
        my m = new my() {};
        m.mymethod();
    }
}

Hier erstelle ich eine Instanz meiner Klasse und rufe eine Methode der abstrakten Klasse auf. Kann mir das bitte jemand erklären? Habe ich mich bei meinem Vorstellungsgespräch wirklich geirrt?

1voto

Jency Punkte 240

Eigentlich können wir ein Objekt einer abstrakten Klasse nicht direkt erstellen. Was wir erstellen, ist eine Referenzvariable eines abstrakten Aufrufs. Die Referenzvariable wird verwendet, um auf das Objekt der Klasse zu verweisen, die die abstrakte Klasse erbt, d.h. die Unterklasse der abstrakten Klasse.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X