Difference between revisions of "Step 6 (S-10664)"

From Stepik Wiki
Jump to: navigation, search
(Create page for step id=10664)
 
 
Line 1: Line 1:
 
Step on Stepik: https://stepik.org/lesson/552/step/6
 
Step on Stepik: https://stepik.org/lesson/552/step/6
  
<img width="50%" src="https://ucarecdn.com/1010c938-edf7-47fa-b558-9a59d8d75b6c/">
+
[[File:Step_6_(S-10664)_1.png|border|800px]]
  
 
[00:00 - 00:14] как я уже говорил производные классы наследование поля своих базовых классов однако если внутри базовых классов были объявлены с модификатором доступа правят то внутри производного класса мы не можем обратиться к этим поля ты даже не смотря на то что
 
[00:00 - 00:14] как я уже говорил производные классы наследование поля своих базовых классов однако если внутри базовых классов были объявлены с модификатором доступа правят то внутри производного класса мы не можем обратиться к этим поля ты даже не смотря на то что
Line 12: Line 12:
  
  
<img width="50%" src="https://ucarecdn.com/ac76f08d-784b-4715-b773-166732286427/">
+
[[File:Step_6_(S-10664)_2.png|border|800px]]
  
<img width="50%" src="https://ucarecdn.com/2e88ee0f-fe43-422a-bded-0756353d2b21/">
+
[[File:Step_6_(S-10664)_3.png|border|800px]]
  
<img width="50%" src="https://ucarecdn.com/0e39f279-cdaa-4c5e-8387-c4cc2bd90df8/">
+
[[File:Step_6_(S-10664)_4.png|border|800px]]
  
 
[00:47 - 01:04] поля класса прошлом как protected в этом случае никакой внешний код не смогут менять однако мы смогли бы обращаться к этим полям внутри класса сегодня ты в том что то менять стоит отметить что использование модификатора protected
 
[00:47 - 01:04] поля класса прошлом как protected в этом случае никакой внешний код не смогут менять однако мы смогли бы обращаться к этим полям внутри класса сегодня ты в том что то менять стоит отметить что использование модификатора protected
  
  
<img width="50%" src="https://ucarecdn.com/c22b1a53-bcc9-4d49-9016-85c2e2377f3f/">
+
[[File:Step_6_(S-10664)_5.png|border|800px]]
  
<img width="50%" src="https://ucarecdn.com/c735d16c-5ea3-4535-97f5-8f438362af02/">
+
[[File:Step_6_(S-10664)_6.png|border|800px]]
  
 
[01:04 - 01:23] с полями то есть определения политико protected потенциально нарушает инкапсуляцию аналогично тому как это было с модификатором паблик если мы определяем какие то поля как public то внешний код может попытаться изменить эти поля и измените таким образом что нарушится ли варианты класса
 
[01:04 - 01:23] с полями то есть определения политико protected потенциально нарушает инкапсуляцию аналогично тому как это было с модификатором паблик если мы определяем какие то поля как public то внешний код может попытаться изменить эти поля и измените таким образом что нарушится ли варианты класса
  
  
<img width="50%" src="https://ucarecdn.com/4ee22f27-73a3-4604-8d03-9f4b40d16580/">
+
[[File:Step_6_(S-10664)_7.png|border|800px]]
  
 
[01:23 - 01:43] аналогично если мы определили поля как protected то внешний код уже не может это сделать но это можно сделать любой наш наследник то есть наш наследник может попытаться изменить поля класса таким образом что будет нарушен вариант класса поэтому не стоит использовать protected для
 
[01:23 - 01:43] аналогично если мы определили поля как protected то внешний код уже не может это сделать но это можно сделать любой наш наследник то есть наш наследник может попытаться изменить поля класса таким образом что будет нарушен вариант класса поэтому не стоит использовать protected для

Latest revision as of 12:38, 7 August 2017

Step on Stepik: https://stepik.org/lesson/552/step/6

Step 6 (S-10664) 1.png

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


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


[00:29 - 00:47] определить поля или методы таким образом чтобы наши наследники имели к ним доступ а никакой внешний код не имел то для этого можно использовать модификатор доступа protect так например в нашем примере с классами промышленности вы могли бы определить


Step 6 (S-10664) 2.png

Step 6 (S-10664) 3.png

Step 6 (S-10664) 4.png

[00:47 - 01:04] поля класса прошлом как protected в этом случае никакой внешний код не смогут менять однако мы смогли бы обращаться к этим полям внутри класса сегодня ты в том что то менять стоит отметить что использование модификатора protected


Step 6 (S-10664) 5.png

Step 6 (S-10664) 6.png

[01:04 - 01:23] с полями то есть определения политико protected потенциально нарушает инкапсуляцию аналогично тому как это было с модификатором паблик если мы определяем какие то поля как public то внешний код может попытаться изменить эти поля и измените таким образом что нарушится ли варианты класса


Step 6 (S-10664) 7.png

[01:23 - 01:43] аналогично если мы определили поля как protected то внешний код уже не может это сделать но это можно сделать любой наш наследник то есть наш наследник может попытаться изменить поля класса таким образом что будет нарушен вариант класса поэтому не стоит использовать protected для


[01:43 - 02:00] полей то есть этот модификатор доступа разумно использовать для определения метод при помощи определить методу как protected можно выделить некоторые специальные интерфейсы для наследника то есть ты так классно быть 2 интерфейса у меня будет в интерфейсе публичной тот который


[02:00 - 02:18] доступен любому внешнему коду а также будет еще а protect это интерфейс тот интерфейс который выдается только в наследником при этом как я уже сказал делать protected не стоит потому что можно будет не уследить и какой то


[02:18 - 02:27] наследовавший нарушит января ты класса и таким образом придет программу недееспособным состоянии