создать объект абстрактного класса! = Создать экземпляр абстрактного класса?

Я узнал, что мы не можем создать экземпляр абстрактного класса. Но сегодня я протестировал несколько кодов и меня это смущает.

package MainPackage;

abstract class abstractClass {
    abstract abstractClass a_function();
}

public class Src {
    abstractClass m;
    public abstractClass abstractClassTest() {
        return m.a_function();
    }
    public static void main(String args[]) {
        System.out.println("Hello world!");
    }
}

Здесь я создаю абстрактный класс abstractClass и возвращаю его в функции abstractClassTest (). И компилируется успешно, без ошибок! ИМО, прежде чем что-то вернуть, компьютер должен создать объект этого типа. И здесь он должен создать объект abstractClass до того, как вернет m.function () , что я не могу понять. я думаю, что мы не можем создать экземпляр абстрактного класса означает, что мы не можем создать объект абстрактного класса или мы не можем создать новый класс (например, abstractClass m = new abstractClass () является недопустимым ) . Но из приведенных выше кодов кажется, что мы можем создать объект абстрактного класса. как это реализовать? Что делает компьютер, когда видит код для кода abstractClass m ? Мы не можем сказать, что Java создала экземпляр абстрактного класса m для кода abstractClass m ? и если java не создает экземпляр класса abstractClass , как он может вернуть объект abstractClass в коде abstract abstractClass a_function (); ?

0
задан Searene 27 January 2012 в 15:57
поделиться