Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Pokrywaniemożedotyczyćrównieżpól:oznaczaonowtedydeklaracjęwpodklasie
polaotakimsamymidentykatorzejakpoleznadklasy.Pokrycieidentykatorówpólżni
sięzarównoodpokrywaniaidentykatorówmetod,jakiprzedeniowaniametod.Pole
statycznemożepokryćpoleniestatyczneiodwrotnie.Polepokrywającepolenadklasymoże
miećcałkieminnytypniżpokrytepolenadklasy.
Metodaprywatnanigdyniemożebyćpokrytaaniprzedeniowanawpodklasie.Dekla-
racjawpodklasiemetodyotejsamejsygnaturzecometodaprywatnanadklasyoznacza
praktyczniewprowadzeniefiniezależnego”bytudonaszegoprogramu(zatemmożemymieć
np.całkieminnytypwynikuniżwmetodzieprywatnejotejsamejsygnaturzeznadklasy).
2.10.Adnotacja@override
Przedeniowującmetodywpodklasach,wartoużywaćadnotacji@Override.Załóżmy,
żeprogramistachceprzedeniowaćmetodętoString()wklasachA,BiC,alegdzieśsię
pomyliłwpisowni,gdzieśpodałzłąlistęparametrówitp.
packagetostring;
classA{
publicStringToString(){
return"ObiektklasyA";
}
}
classB{
publicStringtoString(){
return"ObiektklasyB";
}
}
classCextendsB{
publicStringtoString(StringiiimyMsg){
Strings="ObiektklasyC";
if(myMsgilength==1)s+=myMsg[0];
returns;
}
}
Potakimużyciutychklas:
Systemioutiprintln(newA());
Systemioutiprintln(newB());
Systemioutiprintln(newC());
naszprogramistadazapewnewbrewintencjomnastępującewyniki:
tostringiA@a90653//błądwnazwiemetody-wołanajesttoString()zklasyObject,
//ktorądziedziczyA
ObiektklasyB
//tudobrze
ObiektklasyB
//aletumetodatoString()jestprzeciążonawklasieC,anie
//przedeniowanadlategodostajemynapiszmetodytoString
//zklasyB
60
2.Ponownewykorzystanieklas