Я где-то прочитал, что мы не можем инициализировать интерфейс, например:
interface MyInterface{};
и следующий код определенно незаконно:
MyInterface m = new MyInterface();
и как я помню текст, я прочитал сказал: что Ключевое слово NEW
используется для выделения памяти для членов класса; Таким образом, в случае интерфейса у нас есть только абстрактные функции, поэтому в интерфейсе нечего выделяться; Следовательно, инициализация интерфейса запрещена.
Хорошо, это имеет смысл для меня.
Но в случае абстрактного класса нам разрешено объявлять и определять абстрактные функции, не абстрактные функции, а также обычные переменные; так почему нам также не разрешено инициализировать абстрактный класс? И из-за этого мне было интересно, когда и насколько переменные в абстрактном классе, если таковые имеются, выделяются память?