Overerving

Status
Niet open voor verdere reacties.

Tim Hovius

Gebruiker
Lid geworden
25 jan 2008
Berichten
788
Ik moet voor school een opdracht maken. Een deel staat hieronder. Maar ik snap niet hoe je een Pasfoto moet overerven van Foto. Het zijn beide foto's, maar de pasfoto moet een extra rand krijgen
Ik had dit bij de klasse foto:
[CPP]package stap_0;

import java.awt.*;

import javax.swing.*;

public class Foto extends JPanel
{
protected ImageIcon foto;
protected Point formaat;
protected String afbeelding;
protected String naam;
protected Color tekstkleur;
protected Point positie;

public Foto(Point formaat, String afbeelding, String naam,
Color tekstkleur, Point positie)
{
this.setLayout(null);
this.setBounds(positie.x, positie.y, formaat.x, formaat.y);

this.foto = new ImageIcon(this.getClass().getResource(afbeelding));

this.formaat = formaat;
this.afbeelding = afbeelding;
this.naam = naam;
this.tekstkleur = tekstkleur;
this.positie = positie;
}

public void paintComponent(Graphics g)
{
super.paintComponent(g);

foto.paintIcon(this, g, 0, 0);
g.setFont(new Font("Arial", Font.BOLD, 30));
g.setColor(tekstkleur);
g.drawString(naam, 5, formaat.y - 5);
}
}
[/CPP]
Nu heb ik geen idee wat ik bij pasfoto moet zetten. Ik had dit al maar dat is fout:
[CPP]package stap_0;

import java.awt.*;

public class Pasfoto extends Foto
{
public Pasfoto(Color lijstkleur, int lijstdikte)
{
super(lijstkleur, lijstdikte);
}
}
[/CPP]

Bedankt voor de hulp :thumb:
 
Laatst bewerkt:
Je zou gebruik moeten maken van getters en setters. Met 'super' roep je de constructor aan van uw main klasse, tuurlijk ga je hier een error op krijgen want die constructor accept die parameters niet.

Wat je dus moet doen:
  • Getters en setters aanmaken
  • Default constructor toevoegen
  • En je subklasse aanpassen tot:
[CPP]
package stap_0;

import java.awt.*;

public class Pasfoto extends Foto
{
private Color lijstkleur;
private int lijstdikte;

public Pasfoto(Color lijstkleur, int lijstdikte)
{
super();

this.lijstkleur = lijstkleur;
this.lijstdikte = lijstdikte;
}
}
[/CPP]

Dan zou je in uw programma iets als het volgende kunnen doen.

[CPP]Pasfoto pasfoto = new Pasfoto(kleur, 5);
pasfoto.setFormaat = ...
pasfoto.setAfbeelding = ...
.................................[/CPP]
 
dat zou inderdaad kunnen alleen moet je alleen wel de constructor van Pasfoto aanpassen. de constructor van Foto accepteerd namelijk geen lege parameters.
 
Fraudee!!

Dit kan niet door de beugel, als we je hebben gevonden krijg je een onvoldoende!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan