Co si myslíte o tom, že Swift od Applu nemá protected a tedy nelze mít property/metody, které by šlo použít pouze v rámci hierarchie dědičnosti a ne zvenčí?
Četl jsem jeden článek, kde důvod byl asi takový, že v podstatě protected je k ničemu a žádnou ochranu přístupu neposkytuje, protože nikomu nebrání třídu podědit a prvek zveřejnit jako public.
Jenže teď dám příklad, např. třída Thread mívá často nějakou protected metodu run, která je určena pro překrytí a je volána, když se vlákno nastartuje. Ve Swiftu by nic nebránilo tu metodu run zavolat napřímo, což je v podstatě programátorská chyba.
No co si o tom myslíte? Je to ok a prostě brát to tak, že kdo např. v tom výše uveden případě zavolá napřímo tu metodu run, tak je to jeho problém, že to někde failne? Já nevím, nějak se nemůžu rozhodnout, jestli je to správný přístup nebo ne a psát ten kód tak, že i já třeba dřív nebo později udělám fail ve vlastním kódu, že si něčeho nevšimnu a použiju člen, který zvenčí nemám používat a pak budu 2 dny debuggovat nebo mám hledat neustále nějaký berličky, jak to ošetřit tak, aby došlo k nějakýmu fatalerroru, když public člen bude použit z venčí i když jeho sémantika je protected?