Вы, конечно, знаете, что рыбы не говорят (по крайней мере он не делаютэтогромко).Нонашкласс Fish былунаследованизкласса Pet,у которогоестьметод say(). Этозначит,чтовыбеспрепятственноможете написатьчто товэтомроде:
myFish.say();
Нуину,наширыбкизаговорили… Чтобыизбежатьэтого,вклассе Fish нужно переопределить ( override) метод say(), обьявленный в классе Pet. Этоработаеттак:есливыобъявляетевпод классеметодимеющий точно такой же заголовок , как в его же супер классе, Java выполнит метод под класса, вместо метода супер класса. Давайте добавим к классуFishметодsay().
publicString say(String something){
return"Тычёнезнаешь,чторыбынеразговаривают?" ;
}
Атеперьвызовемметод say()изметода main()класса FishMaster:
myFish.say("Привет" );
Выполнитеэтупр ограммуион а напечатаетследующее:
| Тычёнезнаешь,чторыбынеразговаривают?
| say()класса Pet былпереопределен.
|
|
|
| Этоподтверждает,чтометод
|
|
|
| Вотэтода!Мыизучилимногоновоговэтойглаве
| – давайтепередохнём.
|
|
|
| | | | | |
Еслизаголовокметодавключаетклю чевоеслово final,такойметод переопределитьнельзя,например:
| ПрогрнаммированиеJava длядетей,родителей,бабушекдедушек
|
|
|
|
|
|
|
|
|
|

final public voidsleep(){…}