04. august 2005 - 15:05Der er
11 kommentarer og 1 løsning
override af metoder
Jeg har en super klasse med en metode med implementation
class Super{ public method1(){ ... ... } }
nu vil jeg gerne lave en subclasse som tvinger alle yderliger subklasser til at lave en ny implementation af method1.
class Sub extends Super{ abstract public method1(); }
i alle klasser som arver fra Sub vil jeg gerne have at compileren tvinger programøren til at lave en ny implementation af method1.
class SubSub extends Sub{ //her skal laves implementation af method1 men compileren brokker sig ikke }
det som går galt er jo tydeligvis at den bare bruger implementationen fra Super. Mit spørgsmål går på om der findes et keyword jeg kan sætte foran metodesignaturen i Sub så implementationen fra Super ignoreres??
hmm min kode virker åbenbart som forventet alligevel, Jeg kan compile på to forskellige måde i mit IDE (lang historie).
men jeg fik den til at brokke sig over manglende implementation i SubSub, min kode ser sådan her ud og det tvinger SubSub til at lave en implementation af method1()
class Super{ public method1(){ ... ... } } class Sub extends Super{ abstract public method1(); }
class SubSub extends Sub{ //her skal laves implementation af method1 men compileren brokker sig ikke }
hvordan jeg kan det... tja det kan jeg altså, compileren brokker sig i hvert fald ikke. Det jeg gør er at override metoden fra superklassen og så erklære den for abstract så jeg tvinger sub klasser af denne klasse til at lave en implementering. ok det var vist en gentagelse af spørgsmålet men jeg ved ikke hvad jeg ellers skal svare, jeg syns os selv det ser lidt mærkeligt ud men det virker efter hensigten
Prøv og lav en instans af Sub og kald metoden på den :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.