Pokud mám ve třídě privátní atributy a veřejné metody, tak pro potomky budou přístupné pouze metody. Víc nepotřebuji. Potomek nemá důvod na atributy sahat, o to se starají metody nadtřídy.
Veřejné metody neslouží k přístupu uvnitř třídy (i když můžou), ale k přístupu z vně instance. V případě, že budou všechny public, tak jste nemusel používat dědění, ale skládání, protože část nadtřídy se v instanci chová jako složený, zapouzdřený, samostatný objekt. Otázkou je, zda je takový model v pořádku.
Opět: Vaše pojetí nadtřídy je pojetím izolované entity vložené do podtřídy. Přitom podstatou specializace je pravidlo "is-a", takže není důvod, aby podtřída nepracovala s entitami z nadtřídy, dokonce je to záhodno. Máte-li potřebu oddělovat mezi sebou části z řetězce hierarchie (přičemž pořád platí, že nadtřída je podtřídami nedotčena), snažíte se vyrábět něco jako skládání.