Konzeption

Status
Nicht offen für weitere Antworten.

Sindbad1983

Top Contributor
Hi!

Hab eine kurze Frage zum konzeptuellen Entwurf:

Ich möchte Rechtecke, Quadrate und Kreise implementieren!

Als Überklasse möcht ich die Klasse Figure verwenden!
Als Operationen werden Fläche berechnen und Umfang berechnen durchgeführt!

Wie kann ich die gemeinsame Oberklasse Figure am besten :bae: implementieren?

Ich brauch ja in Figure einen gemeinsamen Konstruktor oder?

aber das geht ein bissl schwer, weil ein Rechteck hat l und b und ein Kreis nur einen Durchmesser..
wie mach ich das am besten?
wie fass ich das zusammen?
hat da jemand eine Idee? :idea:
 

MASTERmind

Bekanntes Mitglied
das ist doch die typische frage/aufgabe für vererbung.

eine abstracte Superklasse hat keinen konstruktor.
wird also nicht instantiiert.
du kannst die konstruktoren dann in der kindklasse individuell stricken!

sieh mal bei"www.gailer-net.de" im thema vererbung nach.

EDIT:

Das meinte ich damit sagen zu wollen "hat keinen Konstruktor":

Da in der Klasse Karte kein Konstruktor definiert ist, wird automatisch der argumentenlose Standardkonstruktor vom Compiler zur Verfügung gestellt. Aber, dieser Konstruktor kann nicht direkt verwendet werden, da kein Karte-Objekt konstruiert werden kann.
 

Sindbad1983

Top Contributor
oder ist das eh die beste Variante?

Code:
public abstract class Figure {
	

	protected double length;
	protected double width;
	
	public Figure(double length, double width){
		this.length=length;
		this.width=width;
	}
	
	protected abstract void accept(Visitor visitor);

}

Code:
public class Rectangle extends Figure {
	
	public Rectangle(double length, double width){
		super(length,width);
	}
	


	protected void accept(Visitor visitor) {
		
		
	
		
	}

}

Code:
public class Circle extends Figure {
	
	int durchmesser;

	public Circle(double length, double width, int durchmesser){
		super(length, width);
		this.durchmesser=durchmesser;
	}

	
	protected void accept(Visitor visitor) {
		
	}

}
 

MASTERmind

Bekanntes Mitglied
eine abstracte klasse wird aber nicht instantiiert, würde ja auch keinen sinn machen, denn sie soll ja abstrakt sein.

der standard konstruktor existiert natürlich.
 
B

bygones

Gast
MASTERmind hat gesagt.:
eine abstracte klasse wird aber nicht instantiiert, würde ja auch keinen sinn machen, denn sie soll ja abstrakt sein.
der standard konstruktor existiert natürlich.
wieso sollte eine abstrakte Klasse keinen Konstruktor haben ?

In einer abstrakten Klasse koennen Felder definiert werden, die beim erzeugen von Subklassen gesetzt werden muessen. Somit ist es nicht logisch einer abstrakten Klasse per se keinen Konstruktor zu geben !
 
Status
Nicht offen für weitere Antworten.

Oben