Archief - Beginnersvraag Java

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

yvescorvilain

Legacy Member
Beste Forumleden,
Bij het leren van Java in BlueJ stuit ik op het volgende probleem:
Ik maak een databank waarin allerlei multimedia objecten kunnen opgeslagen worden.
overerving is als volgt
Item -> Game -> Videogame

de code van de superclass Item is als volgt:
HTML:
public class Item
{
    private String title;
    private int playingTime;
    private boolean gotIt;
    private String comment;

    
    public Item(String theTitle, int time)
    {
        title = theTitle;
        playingTime = time;
        gotIt = false;
        comment = "";
    }

    
    public void setComment(String comment)
    {
        this.comment = comment;
    }

    
    public String getComment()
    {
        return comment;
    }

    
    public void setOwn(boolean ownIt)
    {
        gotIt = ownIt;
    }

    
    public boolean getOwn()
    {
        return gotIt;
    }

    public void print()
    {
        System.out.print("title: " + title + " (" + playingTime + " mins)");
        if(gotIt) {
            System.out.println("*");
        } else {
            System.out.println();
        }
        System.out.println("    " + comment);
    }
}

Daarop volgt de subclass Game, tot hier alles inorde
HTML:
public class Game extends Item
   {   
       private String developer;
       private String players;
    

   
    public Game(String theTitle, String theDeveloper, String thePlayers, int time)
    {
       super(theTitle, time);
       developer = theDeveloper;
       players = thePlayers;
    }

     
    
    public String getDeveloper()
    {
        return developer;
        
    }
    
    public String getNumberofPlayers()
    {
        return players;
    }
}

en bij het declareren van een nieuwe class Videogame loopt het fout.

Ik krijg de error: "Cannot find symbol - constructor Game (string, string)

HTML:
public class Videogame extends Game
{
    private String platform;

    
    public Videogame(String theTitle, String theDeveloper, String thePlayers, String whatPlatform, int time)
    
    {   super(theDeveloper, thePlayers);
        platform = whatPlatform;
        
    }
    public String getPlatform()
    {
        return platform;
    }
}

Wat loopt er mis?

Bedankt,

Bv202

Legacy Member
Je class Game heeft geen constructor dat slechts 2 parameters accepteert.

Je super()-call in de constructor van Videogame is dus fout.

NeverwinterX

Legacy Member
De error zegt het zelf al.
Je doet in de constructor van Videogame een oproep naar een constructor van Game:
Code:
super(theDeveloper, thePlayers);
Dus een constructor met als parameters 2 strings.
Maar zo'n constructor zit er helemaal niet in Game. Enkel eentje met als parameters 3 strings en een int.
Wat je moet doen is:
Code:
super(theTitle, theDeveloper, thePlayers, time);

yvescorvilain

Legacy Member
wauw, simpel. bedankt!!

Ik begrijp de werking van overerving wel, zulke "details" was ik nog niet tegengekomen!

nogmaals bedankt!!

yvescorvilain

Legacy Member
@bV202

Vak op uni: Object-georiënteerd-programmeren met BlueJ :(

over enkele dagen schriftelijk examen
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan