Jak wiadomo wszystkie metody w Javie sa wirtualne. C++ jak rowniez Delphi oferuja takze zwykle metody niewirtualne (Delphi takze dynamic, ale mozna je potraktowac jako virtual).
A teraz pytanie. W jakich sytuacjach niezbedne jest zastosowanie metod niewirtualnych lub skorzystanie z nich bardzo mocno komplikuje zadanie? W Javie jakos sobie z tym radza, wiec jestem ciekaw, czy gdyby usunieto z tych jezykow taka mozliwosc, to mocno byscie nad tym plakali :)
0
0
Wirtualne za długo się odpalają :)
0
za to w Javie jest też słowo final, które zamyka możliwość dziedziczenia po obiekcie lub zdejmuje możliwość podmiany danej metody/pola. na przykład cały String jest final.
0
Dlugo? Raczej nie jest to zbyt duza roznica. Trzeba po prostu odpalic metode najpierw pobierajac jej adres z vmt. Nie jest to zbyt wielki koszt.
Co do final, to ono mi sie <ort>niepodoba</ort>. Nie lubie byc ograniczany :P
Chodzi mi raczej o elastycznosc. Czego nie mozna zrobic za pomoca wirtualnych, a niewirtualne umozliwiaja.
0
to nie jest tak, że metody statyczne mają coś więcej. Właśnie o to chodzi, że mają mniej - nie można ich nadpisać - i to o to chodzi.