Найти тему
Programmer

Основы программирования. Приведение коробок и их миграция по объекту.

На картинке показаны примеры приведения коробок в рамках одного большого объекта, когда ссылки и указатели указывают на разные части сложного объекта, так как каждая коробка сделана либо под целый объект, либо под его определенную часть.

Картинка для иллюстрации:

Основы программирования. Приведение коробок и их миграция по объекту.

То есть вы можете создавать коробки от частей объектов. Примером являются коробки от интерфейсов или абстрактных классов, да и обычных базовых классов при наследовании. Например, коробка от интерфейса включает в себя полностью все его методы и компоненты, ибо нет смысла делать коробки от частей интерфейса, ведь вы не можете построить объект по чертежу интерфейса или абстрактного класса. Если вы унаследуете в своем новом объекте интерфейс, абстрактный класс или базовый класс, то вы можете создать от них коробку и она будет охватывать часть вашего объекта в случае расширяющего наследования.

Еще важнейшая деталь! Когда вы приводите одни коробки к другим коробкам и этим мигрируете по объекту, то вы тем самым "освещаете" данную часть объекта, то есть от имени коробки вы можете обращаться только к тем методам и переменным той части объекта, которую охватывает или "освещает" данная коробка!

Теперь понятно пояснил? Коробки являются своего рода "фонариками", которые после приведения из одной части объекта в другую часть "освещают" данную часть и вы получаете к ней доступ с помощью данной коробки.

В случае приведения коробок при наследовании от предка к наследнику вы расширяете коробки при расширяющем наследовании, при таком приведении коробка от предка может содержать все объекты наследников, что я вам показал в соседней статье об универсальности коробок базовых классов и интерфейсов при наследовании, способных принимать в себя всю иерархию наследников вниз.

Теперь вы поняли, что существуют в основном два вида приведения типа коробок? Один приводит коробки при миграции по объекту и "подсвечивает" его компоненты в области коробки, другой вид приведения коробок для наследования, когда коробка от базового типа предка вмещает все объекты наследников. Запомнили навсегда? Молодцы!

Подписывайтесь, комментируйте, ставьте лайки...