Pokrywaniemożedotyczyćrównieżpól:oznaczaonowtedydeklaracjęwpodklasie
polaotakimsamymidentyfikatorzejakpoleznadklasy.Pokrycieidentyfikatorówpólróżni
sięzarównoodpokrywaniaidentyfikatorówmetod,jakiprzedefiniowaniametod.Pole
statycznemożepokryćpoleniestatyczneiodwrotnie.Polepokrywającepolenadklasymoże
miećcałkieminnytypniżpokrytepolenadklasy.
Metodaprywatnanigdyniemożebyćpokrytaaniprzedefiniowanawpodklasie.Dekla-
racjawpodklasiemetodyotejsamejsygnaturzecometodaprywatnanadklasyoznacza
praktyczniewprowadzeniefiniezależnego”bytudonaszegoprogramu(zatemmożemymieć
np.całkieminnytypwynikuniżwmetodzieprywatnejotejsamejsygnaturzeznadklasy).
2.10.Adnotacja@override
Przedefiniowującmetodywpodklasach,wartoużywaćadnotacji@Override.Załóżmy,
żeprogramistachceprzedefiniować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());
naszprogramistada–zapewnewbrewintencjom–następującewyniki:
tostringiA@a90653//błądwnazwiemetody-wołanajesttoString()zklasyObject,
//ktorądziedziczyA
ObiektklasyB
//tudobrze
ObiektklasyB
//aletumetodatoString()jestprzeciążonawklasieC,anie
//przedefiniowanadlategodostajemynapiszmetodytoString
//zklasyB
60
2.Ponownewykorzystanieklas