Step 2 (S-10690)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/557/step/2

Step 2 (S-10690) 1.png

[00:00 - 00:15] в последнее время эти данные лекции мы поговорим о некоторых особенностях наследовании 1 такая особенность это возможность указать модификатор доступа при наследовании например если есть некоторый класс а то от него можно унаследоваться указать модификаторы доступа


[00:15 - 00:31] можно указать модификаторы доступа private и можно даже указать модификаторы доступа protected если не указать модификатор доступа явно там будет назначен по умолчанию в зависимости от того с каким ключевым словом определен данные класс


[00:31 - 00:49] это будет протекать аналогично тому как это работает с модификаторами доступа для полей и методов классов то есть если мы определим класс ключевым словом экстракт я не буду используется паблик на следует так же как по умолчанию внутри класс определенных тракте пользоваться popup


[00:49 - 01:05] а для классов объявленных с ключевым словом класс будет использоваться как работают модификаторы доступа в случае с паблик наследованием совсем наследовании по которой мы говорили до этого


[01:05 - 01:24] я везде использовал ключевое слово тракт но не указывал модификатор доступа поэтому все отношение было в случае с паблик наследованием любой код который работает с производными классом данном случае мы 1 знает о том что это классно унаследован от базовых класса а


[01:24 - 01:43] и значит может вызывать все методы которые унаследованы производным классом от базового а также приводить указателя и ссылки на производный класс указать ремастерингом на базовой post то есть информация о том что да день является производным доступно все случаи


[01:43 - 01:58] private наследования информация о том что в данном случае как бы 2 унаследовано класса а эта информация доступна только внутри класса б 2 то есть только внутри класса б 2 можно


[01:58 - 02:14] обращаться к некоторому наследуем от класс а и только внутри вас вы да можно приводить указателей ссылки на производные классно указатель мы ссылкам на и аналогично с протыкает наследования


[02:14 - 02:28] если класс б 3 в наследовании класс а с модификатором доступ к protected то информация о том чтобы 3 является производным от а классом она будет доступна внутри класса и передаваться по наследству по наследству то есть


[02:28 - 02:44] во всех производных от петриковской будет возможность обратиться к методам унаследованным от базовых классов а также будет возможность привезти указателей ссылки на производной классе куда термопленку на под глаза


[02:44 - 03:02] важно отметить что все на сегодня не при котором говорит это было не на паблик наследования и именно паблик наследование задает отношение наследования в терминах объектно ориентированном программировании то есть в терминах программирования наследование соответствует public наследуемся + +


[03:02 - 03:18] private и protected наследовании издают похожий на наследование конструкции но при этом в терминах а о б это не является корректным нас так как не любой кот может работать с производными классами через указатели ссылку на базу и класс


[03:18 - 03:34] если в каком то месте программ вам вдруг потребовалось использовать правила наследования то скорее всего вы хотите чего то странного и скорее всего в данном месте можно заменить праве наследования агрегирование


[03:34 - 03:52] хотя случаются ситуации когда мы хотим не только агрегировать некоторый класс но и подменить его виртуальные методы в этом случае действительно можно использовать правила 3 protected наследования и таким образом мы с 1 стороны не добавим преобразование от


[03:52 - 04:08] производного класса базу для всего окружающего кода но с другой стороны мы сможем агрегирует 1 некоторого класса и за 1 подменить виртуальный метод эту вас есть более менее это единственный случай когда стоит использовать правила или protected нашли в остальном


[04:08 - 04:15] private наследования не нужно всегда используете