Ukrywanie metod z taką samą nazwą przez klasę pochodną

0

Problem, który wydaje mi się ciekawy, z którym spotkałem się dzisiaj (nie kompilujący się przykład):
http://ideone.com/HYO7ZW

Pierwsza próba weryfikacji co się dzieje (zmieniona nazwa metod w klasie bazowej):
http://ideone.com/VPXEU9

Skoro już widać, że metody są ukrywane to znaczy, że powinno się je jawnie wywołać:
http://ideone.com/47344i

Skoro da się jawnie wywołać to da się też "odukryć" (rozwiązanie):
http://ideone.com/YocOUz

0

Ciekawe - zdawać by się mogło, że powinno działać od razu.

Ja raczej nie używam dziedziczenia - jedynie do polimorfizmu, normalnie robię same zawierania, jakoś lubię jak kod wygląda tak:

object->base0.get().call();

W Intelisense za każdą kropką (oraz ->) pokazuje się mniej śmieci :> i lubię widzieć z jakiego obiektu korzystam

0

dla mnie to jest trochę bez sensu. Do obiektu klasy bazowej wsadzamy obiekt klasy pochodnej po to aby wywołać prywatną metodę obiektu klasy pochodnej za pomocą metody z bazowej o tej samej nazwie. Nie wiem do czego takie coś było by mi potrzebne. Gdybym chciał wywołać prywatną metodę obiektu klasy pochodnej to bym po prostu uczynił ją publiczną. Takie cudowanie nie ma sensu

0

a co jesli zamiast inta uzyje klase ktora jest prywatna i nigdy nie powinna byc publiczna, a klasa A jest bardzo ciezka i nie powinienem tworzyc bez sensu obiektow tej klasy?

1 użytkowników online, w tym zalogowanych: 0, gości: 1