Instantiierung und Vererbung bei größeren Projekten

Status
Nicht offen für weitere Antworten.

richardkrieger

Aktives Mitglied
also jetzt verstehe ich nix mehr.
Wie macht ihr das bei größeren Projekten? Angenommen ich habe 10 Klassen in einer "linie":
Klasse1 erzeugt Klasse2 erzeugt Klasse3............Klass9 erzeugt Klasse10
wie schaffe ich, dass Klasse10 die Methoden der Klasse1 "sieht"? Wenn ich
"Klasse2 extends Klasse1", Klasse3 extends Klasse2" usw. bis "Klasse10 extends Klasse9" mache, bekomme ich Speicherüberlauf.
Wenn ich in der Elternklasse keine Instanz der Kinderklasse habe, kann ich die nich einbinden. Wenn ich in der Kindklasse kein "extends Elternklasse" mache, sehe ich die Methoden der Elternklasse nicht.

Es ist zum Verzweifeln. :(

Bin kurz davor, alle instantiierungen wieder in ein interface zu schieben.
 

FArt

Top Contributor
Angenommen ich habe 10 Klassen in einer "linie":
In einer Linie? Meinst du Ableitungshierarchie?
Klasse1 erzeugt Klasse2 erzeugt Klasse3............Klass9 erzeugt Klasse10
Meinst du den Aufruf des Superkonstruktors?
wie schaffe ich, dass Klasse10 die Methoden der Klasse1 "sieht"
Wie sieht? Aufrufen kann? Überschreiben kann?
Klasse2 extends Klasse1", Klasse3 extends Klasse2" usw. bis "Klasse10 extends Klasse9" mache, bekomme ich Speicherüberlauf.
Vielleicht sind die Instanzen dieses Konstrukts so gewaltig, dass dir der Standardspeicher aus geht?

Bist du sicher, dass du das richtige Design gewählt hast? Hört sich nicht so an...
 

ARadauer

Top Contributor
du hast eine 10 stufige klassen hierachie? man soll es mit der vererbung nicht übertreiben.

oft passiert anfängern der fehler, dass sie erben um auf eigenschaften und methoden von anderen klassen zuzugreifen, das ist aber nicht sinn der sache. vererbung dient vielmehr der abstraktion.

ist deine klasse2 eine klasse1? ist dein hund ein tier?
 

ARadauer

Top Contributor
Und sind deine Kinder auch gleichzeitig deine Eltern?
nein, ich kähme aber auch nie auf die idee, dass meine kinder von mir erben. (naja im rechtlichen sinn schon)

aber MeinKind extends Me macht keinen Sinn, die erweitern mich nicht
 

ms

Top Contributor
Die Frage galt dem Ersteller zum Nachdenken.
Dass das Unfug ist wissen wir ja. :D

ms
 

richardkrieger

Aktives Mitglied
OK, ein beispiel mit 2 Klassen:
Code:
public class Klasse1 {
	
	private int eigenschaft1=1;
	private Klasse2 klasse2=new Klasse2();
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Klasse1();

	}
	
	public Klasse1(){
		klasse2.setEigenschaft2(5);
	}
	public int getEigenschaft1(){
		return eigenschaft1;
	}

}
Code:
public class Klasse2 extends Klasse1{
	
	private int eigenschaft2=2;
	
	public Klasse2(){
		this.getEigenschaft1();
	}
	
	public void setEigenschaft2(int wert){
		eigenschaft2=wert;
	}

}
erzeugt Fehler:
Exception in thread "main" java.lang.StackOverflowError
at Klasse1.<init>(Klasse1.java:17)
at Klasse2.<init>(Klasse2.java:6)
at Klasse1.<init>(Klasse1.java:6)
at Klasse2.<init>(Klasse2.java:6)
....................
ohne "extends" in der Klasse2 sehe ich aber nicht die Methode "getEigenschaft1" aus Klasse1. Ohne Instantiierung in Klasse1 kann ich die "setEigenschaft2" der Klasse2 nicht bedienen.

Wenn die vererbung nur der Abstraktion dient ist es warscheinlich doch besser alle instantiierungen in ein interface zu schieben?
 

ms

Top Contributor
Es stellt sich grundsätzlich die Frage in was für einer Beziehung diese beiden Klassen zueinander stehen.
Bring ein konkretes Beispiel.

ms
 

richardkrieger

Aktives Mitglied
es ist jetzt konkreter, aber auch ein Beispiel. Es geht nur ums Prinzip:
Code:
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;

public class Klasse1 {
	
	private JFrame fenster=new JFrame();
	private Klasse2 klasse2=new Klasse2();
	
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Klasse1();

	}
	
	public Klasse1(){
		fenster.setLocation(0,0);
		fenster.setSize(300,300);
		fenster.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		fenster.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent ev){
				klasse2.beenden();
			}
		});
		fenster.setVisible(true);
	}
	
	public int getPosX(){
		return fenster.getX();
	}
	public int getPosY(){
		return fenster.getY();
	}

}
Code:
public class Klasse2 extends Klasse1{
	
	public void beenden(){
		System.out.println(this.getPosX());
		System.out.println(this.getPosY());
		System.exit(0);
	}

}

Aber ich glaube, mir dämmert's langsam. Über "extends" bekomme ich keine Instanz der Elternklasse, sondern nur eine "Vorlage". Also doch instantiierung im Interface.
 

Wildcard

Top Contributor
richardkrieger hat gesagt.:
Aber ich glaube, mir dämmert's langsam. Über "extends" bekomme ich keine Instanz der Elternklasse, sondern nur eine "Vorlage". Also doch instantiierung im Interface.
Richtig, du bekommst natürlich keine Instanz.
'instantiierung im Interface' was soll das nun wieder bedeuten? Hört sich ja alles sehr abenteuerlich an.
Vielleicht wäre es eine gute Idee das Java Grundlagenkapitel fertig zu lesen bevor du dich an 'größere Projekten' wagst?
 

richardkrieger

Aktives Mitglied
ich bitte um Verständnis: programmiere schon lange, OOP war aber nicht interessant. Jetzt möchte was mit GUI machen. Ihr wisst ja, User wollen schöne Fensterchen mit schonen Bildchen :)
Habe in letzter Zeit viel mit Perl gemacht. Mit der Sprache kommen die Anwender nicht zurecht. Da müssen zusätzliche libs in die Sprache eingebunden werden, nicht in die Applikation selbst. Wenn die bei der Installation lesen:
1. Perl runterladen und installieren(das schaffen etwa 50%)
2. per PPM Bibliothek Xyz::Xyz installieren(das schaffen etwa 10%)
3. im Script die INI-Werte setzen(1%)

Prozentangaben entsprechen der Wirklichkeit. Bin selbständiger EDV-Allrounder. Mittlerweile gibt es Anwender, die nicht wissen, dass die eine Festplatte haben. Die speichern in "Eigene Dateien" :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Instantiierung Java Basics - Anfänger-Themen 15
T Instantiierung von Klasse scheitert Java Basics - Anfänger-Themen 22
D Instantiierung Java Basics - Anfänger-Themen 5
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
M Vererbung - Polymorphie Java Basics - Anfänger-Themen 37
L Java- Vererbung Java Basics - Anfänger-Themen 4
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 12
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 1
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
M Vererbung Java Basics - Anfänger-Themen 6
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Java Basics - Anfänger-Themen 7
D Vererbung Java Basics - Anfänger-Themen 3
K Schleife berechnet kein Ergebnis (Vererbung) Java Basics - Anfänger-Themen 6
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
W Zur Vererbung: Wann und wie? Java Basics - Anfänger-Themen 35
H Datenkapselung, Vererbung und UML Java Basics - Anfänger-Themen 16
districon Super-Stichwort/ Vererbung Java Basics - Anfänger-Themen 3
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
1 Vererbung Klassenattribute Java Basics - Anfänger-Themen 9
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
N Thema Vererbung Java Basics - Anfänger-Themen 31
A Vererbung Vererbung Übung Java Basics - Anfänger-Themen 5
B Vererbung - Sichtbarkeitsmodifikation - protected Java Basics - Anfänger-Themen 10
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
G Java Vererbung Java Basics - Anfänger-Themen 8
Y Vererbung Konto - Anfangsprobleme Java Basics - Anfänger-Themen 7
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
M Vererbung mit Enums Java Basics - Anfänger-Themen 8
Kirby.exe Vererbung im Detail erklärt? Java Basics - Anfänger-Themen 9
N Modellierung, vererbung, Java Basics - Anfänger-Themen 163
M Fehlendes Verständnis für dynamische Bindung und Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung im Computerspiel Java Basics - Anfänger-Themen 7
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
I Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
V Vererbung Java Basics - Anfänger-Themen 2
J Frage zur Vererbung Java Basics - Anfänger-Themen 1
J Vererbung Java Basics - Anfänger-Themen 3
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
O Vererbung Ueben mit kleiner Datenstruktur von Räumen Java Basics - Anfänger-Themen 10
O Umgang mit Vererbung verstehen Java Basics - Anfänger-Themen 4
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
O Vererbung änderung des Konstruktors Java Basics - Anfänger-Themen 8
L Vererbung Java Basics - Anfänger-Themen 5
E HashMap+Vererbung Java Basics - Anfänger-Themen 11
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
A Objekterstellung bei der Vererbung Java Basics - Anfänger-Themen 7
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
S Vererbung Java mehrfach Java Basics - Anfänger-Themen 10
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
A Klassen Vererbung privater Methoden und Member Java Basics - Anfänger-Themen 12
A Konstruktoren Vererbung Java Basics - Anfänger-Themen 3
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
W Vererbung, abstract und Konstruktoren Java Basics - Anfänger-Themen 30
J Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 11
G Polymorphie, Vererbung, statischer Typ, Laufzeittyp Java Basics - Anfänger-Themen 2
H Vererbung mit private instanzvariablen Java Basics - Anfänger-Themen 9
S Vererbung Funktionsweise Code zur Vererbung Java Basics - Anfänger-Themen 1
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
S Verständnis Vererbung Java Basics - Anfänger-Themen 3
D JavaFX Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Generizität und Vererbung Java Basics - Anfänger-Themen 4
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
K Vererbung Octagon von Circle Java Basics - Anfänger-Themen 0
B Hilfe bei Vererbung Java Basics - Anfänger-Themen 2
D Vererbung Frage zum Klassenaufbau mit Vererbung Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
S Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 1
F Vererbung in zwei Richtungen? Java Basics - Anfänger-Themen 14
D Vererbung / Polymorphie Java Basics - Anfänger-Themen 5
O Vererbung Java Basics - Anfänger-Themen 5
MiMa Vererbung Theorie OK, Praxis ?? Java Basics - Anfänger-Themen 4
Arif Vererbung Vererbung Variablen überschreiben Java Basics - Anfänger-Themen 1
C Vererbung - Ausgaben bestimmen Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 10
L Setter und Getter/Vererbung Java Basics - Anfänger-Themen 6
C Konstruktoren und Vererbung Java Basics - Anfänger-Themen 2
J Kleinere Frage zur Vererbung/Objekterzeugung Java Basics - Anfänger-Themen 2
G Vererbung Java Basics - Anfänger-Themen 12
J Vererbung privater Variablen Java Basics - Anfänger-Themen 7
J Vererbung Vererbung von Methoden Java Basics - Anfänger-Themen 6
B Vererbung Java Basics - Anfänger-Themen 12
K Vererbung (super) Java Basics - Anfänger-Themen 2
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
C Vererbung Java Basics - Anfänger-Themen 4
L Vererbung Java Basics - Anfänger-Themen 3
J Klassenorganisation | Vererbung Java Basics - Anfänger-Themen 1
B Vererbung Vererbung Java Basics - Anfänger-Themen 2
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
A Benötige Hilfe bei Vererbung Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben