Avatar billede mikkelbm Nybegynder
15. maj 2003 - 10:59 Der er 6 kommentarer og
1 løsning

abstracte metoder, nedarv osv...

Vi har brug for en metode med samme navn, men med forskellige parametre i vores superklasse.

Vi har prøvet dette:

public abstract void nyVareLinje(Vare vare, int antal, double pris);
    public abstract void nyVareLinje(Vare vare, int antal, ArrayList medarbejder);

Men det vil den ikke.
Er der et alternativ???
Avatar billede arne_v Ekspert
15. maj 2003 - 11:03 #1
Hvorfor vil den ikke det ? Hvilken fejl får I ?

Det ser helt legalt ud !
Avatar billede arne_v Ekspert
15. maj 2003 - 11:03 #2
Har I husket at erklære klasse abstract ?
Avatar billede mikkelbm Nybegynder
15. maj 2003 - 11:06 #3
ProjektSalg should be declared abstract; it does not define nyVareLinje(Vare,int,double) in Salg
public class ProjektSalg extends Salg
      ^

Det er vores Salg-klasse der er superklassen, hvor førnævnte kode er i.
Men subklasserne skal vel ikke erklæres abstrakte???
Avatar billede mikkelbm Nybegynder
15. maj 2003 - 11:07 #4
Vi har jo kun brug for én af metoderne i hver klasse (ProjektSalg + TradSalg)
Avatar billede arne_v Ekspert
15. maj 2003 - 11:10 #5
OK.

I har en abstrakt super-klasse med 2 abstrake metoder.

I har to konkrete sub-klasser som hver kun implementerer en af de 2 metoder.

De duer ikke.

En konret (ikke-abstrakt) klasse skal implementere alle abstrakte
metoder i super-klassen.

I har 2 muligheder:

1)  Implemtere begge de abstrakte metoder i begge sub-klassser. Eventuelt
    med en "gør ingenting" metode.

2)  Fjerne de abstrakte metoder fra super-klassen.
Avatar billede arne_v Ekspert
15. maj 2003 - 11:13 #6
Om I skal vælge #1 eller #2 afhænger af hvorfor I har introduceret
de abstrakte metoder i første omgang.

Pointen med en abstrakt metode i en super-klasse er, at ikke-abstrakte
metoder i samme klasse (altså super-klassen) kan kalde den, men at
implementeringen af den først sker i de konkrete (ikke-abstrakte)
sub-klasser.

Hvis I bruger begge de abstrakte metoder i andre metoder i super-klassen,
så er I nødt til at bruge #1.

Hvis ikke kan I bare vælge #2.
Avatar billede mikkelbm Nybegynder
15. maj 2003 - 11:15 #7
Tak for svaret. Vi fik lidt mere forståelse for emnet.
Vi vælger nok 2'eren.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester