Tach zusammen,
ich arbeite mich gerade in Java ein, gehe Java von Kopf bis Fuß durch. An einem Punkt steht, "Die erste konkrete Klasse im Vererbungsbaum muss alle abstrakten Methoden implementieren", und an einem anderen "Wenn man keinen Zugriff auf den Quellcode einer Klasse hat, aber ändern möchte, wie eine Methode dieser Klasse funktioniert, kann man eine Unterklasse verwenden...".
Wenn man also eine abstrakte Klasse hat, nur aber Interesse an einer Methode hat, kann man nicht vermeiden die ganze Klasse neu zu schreiben (?)...
Demnach sollte die Klasse DrawingGraph nicht lauffähig sein (?)
Darüber hinaus dachte ich mir ich kann aus
machen (und die private Methode entsprechend nicht statisch machen), kriege aber die Meldung
Danke & Gruß
ioannis
ich arbeite mich gerade in Java ein, gehe Java von Kopf bis Fuß durch. An einem Punkt steht, "Die erste konkrete Klasse im Vererbungsbaum muss alle abstrakten Methoden implementieren", und an einem anderen "Wenn man keinen Zugriff auf den Quellcode einer Klasse hat, aber ändern möchte, wie eine Methode dieser Klasse funktioniert, kann man eine Unterklasse verwenden...".
Wenn man also eine abstrakte Klasse hat, nur aber Interesse an einer Methode hat, kann man nicht vermeiden die ganze Klasse neu zu schreiben (?)...
Demnach sollte die Klasse DrawingGraph nicht lauffähig sein (?)
Java:
import java.awt.*;
import java.awt.Graphics2D;
import java.awt.geom.Arc2D;
import java.awt.geom.Line2D;
import java.awt.geom.QuadCurve2D;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class DrawingGraph extends JComponent{
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D)g;
// g2.draw(new Line2D.Double(59.2d, 99.8d, 519.1d, 99.8d).getBounds());
// g2.drawLine(120, 50, 360, 190);
g2.drawLine(180, 110, 500, 90);
g2.drawOval(150, 60, 70, 70);
g2.draw(new QuadCurve2D.Double(59.2d, 99.8d, 519.1d, 99.8d, 30, 30));
}
private static void createAndShowGUI(){
JFrame f = new JFrame("Demo");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(300, 100);
f.add(new DrawingGraph());
f.setVisible(true);
}
public static void main(String args[]){
Runnable doCreateAndShowGUI = new Runnable(){
public void run(){
createAndShowGUI();
}
};
SwingUtilities.invokeLater(doCreateAndShowGUI);
}
}
Java:
f.add(new DrawingGraph());
f.add(this);
Ist also der Kausalzusammenhang, dass createAndShowGUI() statisch sein muß, weil run() nur statische Methoden annimmt?"Cannot make a static reference to the non-static method createAndShowGUI() from the type DrawingGraph"
Danke & Gruß
ioannis
Zuletzt bearbeitet von einem Moderator: