Avatar billede oprah Nybegynder
23. maj 2005 - 22:14 Der er 6 kommentarer og
1 løsning

problemer med nedarvning

Hejsa
Jeg har problemer med at finde fejlen i min kode, og håber på, at I kan hjælpe mig.
Jeg har 3 klasser. Item, Game og VideoGame, hvor Game er en underklasse af Item og VideoGame er en underklasse af Game. Nedenunder kan du se klasserne Game og VideoGame.

public class Game extends Item
{
   
    private int numberOfPlayers;

   
    public Game(int numberOfPlayers, String theTitel, int time)
    {
   
        super(theTitel, time);
        this.numberOfPlayers = numberOfPlayers;
    }

    public int getNumberOfPlayers(int numberOfPlayers)
    {
   
        return numberOfPlayers;
    }
}

Og

    public class VideoGame extends Game
      {
   
    private String platform;

   
    public VideoGame(int numberOfPlayers, String platform)
    {
        super(numberOfPlayers);
        this.platform = platform;
       
    }

   
    public String getPlatform(String platform)
    {
   
        return platform;
    }
}

Jeg kan godt complile Gameklassen, men VideoGameklassen vil ikke compiles. Når jeg prøver på det får jeg følge fejlmeddelelse ”Cannot resolve symbol-Constructor Game (int).
Tak på forhånden
Oprah
Avatar billede arne_v Ekspert
23. maj 2005 - 22:17 #1
public Game(int numberOfPlayers, String theTitel, int time) // <------- 3 argumenter
    {
 
        super(theTitel, time);
        this.numberOfPlayers = numberOfPlayers;
    }


public VideoGame(int numberOfPlayers, String platform)
    {
        super(numberOfPlayers); // <------- 1 argument
        this.platform = platform;
     
    }
Avatar billede oprah Nybegynder
23. maj 2005 - 22:34 #2
Ja men jeg har kun brug for variablen numberOfPlayers, og ikke for de andre 2 variabler. Skal jeg alligevel tage dem med?
Avatar billede arne_v Ekspert
23. maj 2005 - 22:36 #3
når du erklærer Game constructor til at blive kaldt med 3 argumenter så skal du også

om nødvendigt

super(numberOfPlayers, "", 0);
Avatar billede oprah Nybegynder
23. maj 2005 - 22:49 #4
Det hjalp. Mange tak.Men kan du ikke forklare mig, hvorfor man skal gøre det på den måde. Det skulle jeg ikke, da Game nedarvede fra Item.
Kan man også skriver det på følgende måde:

  public Videogame(int numberOfPlayers, String theTitel, int time, int platform)
  {
  super(int numberOfPlayers, String theTitel, int time);
  this.platform= platform,
  }
Hvad betyder "" og 0.
Avatar billede arne_v Ekspert
23. maj 2005 - 22:53 #5
VideoGame's constructor kalder Game's constructor - og antallet af argumenter skal passe

du kan ikke angive typer i et kald
Avatar billede oprah Nybegynder
23. maj 2005 - 22:55 #6
Jeg har nu forstod det. Send et svar. 1000 tak
Avatar billede arne_v Ekspert
23. maj 2005 - 22:58 #7
svar
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