C # о создании объекта - PullRequest
       1

C # о создании объекта

0 голосов
/ 21 декабря 2018

Я знаю, как создать объект.

Class1 name = new Class1();

Это означает создание объекта из Class1, но я видел какой-то код в интернете и не получил его.Я хотел поискать в Google по этому вопросу.Но я не знаю, что я должен искать.Можете ли вы помочь мне понять это?

Class1 name = new Class2();

Что это значит?Я имею в виду, я создаю объект из Class1?Я создаю объект из Class2?или я создаю объект из классов Class1 и Class2?

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Во втором примере вы указываете

Class1 name = new Class2();

То есть, Class2 также наследуется от Class1, поэтому он содержит функциональность Class1, а также Class2.Но поскольку вы объявили его как Class1, вы можете использовать в своей программе только функциональность Class1.

Но это простое объяснение.Class1 может фактически быть интерфейсом, который фактически реализует Class2, или Class1 может быть абстрактным базовым классом, который должен быть унаследован.Вы можете привести имя к Class2 и получить функциональность Class1 и Class2.Без конкретного примера того, что вы предлагаете, почти невозможно понять, какой ответ вы ищете.

0 голосов
/ 21 декабря 2018

Предполагая, что код компилируется, мы можем с уверенностью сказать, что Class2 наследует Class1.

Когда вы выполняете следующую операцию:

Class1 name = new Class2();

вы создаете экземпляр /объект Class2, но тип переменной - Class1.Это совершенно верно, поскольку Class2 происходит от Class1.

Пока вы знаете, что оператор new - это то, что создает объект, мы можем, поэтому, сказать, что любой тип следует за newоператор - это тип объекта, который создается.

Вот и все, больше ничего нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...