Override will nicht funktionieren :/

Status
Nicht offen für weitere Antworten.

simlei

Mitglied
Hallo,
ich bin noch neu in dem Programmieren in schönen sich vererbenden Klassen. ich will gerade erreichen, dass in einer Subclass eine Funktion aus der Superclass überschrieben wird.
Diese Funktion ist in der Superklasse in Zeile 159, Name: paintDescTopArea.
ich habe protected gewählt, weil sie damit ja auch in subklassen sichtbar ist... private ist ja nicht in subklassen sichtbar.
Der Fehler, der auftritt, lautet: Cannot reduce the visibility of the inherited method from Graph ModifiedGraph.java line 16

Habt ihr den entscheidenden Tipp für mich? Danke schonmal!


Superklasse:
Java:
package org.jcryptool.analysis.freqanalysis.ui.graphtools;

import org.eclipse.swt.graphics.FontMetrics;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;

/**
 * @author Simon
 *
 */

public class Graph{
	// ## superclass implementation related fields
	
	//Sequences of bars (contain order of painting, too)
	//private Bar[][] barrows;
	//height and width of the painting area
	protected int areaWidth;
	protected int areaHeight;
	// the graphical context
	protected GC gc;
	
	
	// ## Parameters that has to be fields
	
	//the length of the longest Bar[] array
	protected int maxCount;
	
	// ## Parameters that could be local but would be nice to adjust in a subclass
	// ## without overkilling a procedures parameter list or overwriting the function
	
	// Distance of the bar area to top, bottom, etc
	// This values define the description areas
	protected int distTop, distBottom, distLeft, distRight;
	//distance of the real bar space to top, left, ...
	protected int marginLeft, marginRight, marginTop, marginBottom;  
	//Rectangles for the different painting areas
	protected Rectangle barAreaRect, descTopRect, descBottomRect, descRightRect, descLeftRect;
	//Color for labels
	protected MColor descTopFontColor, descBottomFontColor;
	//Color for description Areas and main paint Area
	protected MColor descTopBGColor, descBottomBGColor, descLeftBGColor, descRightBGColor, barAreaBGColor;
	
	
	/**
	 * Creates the Graph Element with the absolutely required components
	 * @param pGc The drawing context
	 * @param pAreaWidth The Width of the painting area
	 * @param pAreaHeight The height of the painting area
	 */
	public Graph(GC pGc, int pAreaWidth, int pAreaHeight)
	{
		areaHeight = pAreaHeight; areaWidth = pAreaWidth;
		gc = pGc;
		
		distTop = 0; distBottom = 20; distLeft = 0; distRight = 0;
		marginTop = 20; marginBottom = 0; marginLeft = 20; marginRight = 20;
		calcAreas();
		
		descTopFontColor = new MColor(0, 0, 0, 255);
		descBottomFontColor = new MColor(0, 0, 0, 255);
		descTopBGColor = new MColor("A3D3FA", 255);
		descBottomBGColor = new MColor("A3D3FA", 255);
		descLeftBGColor = new MColor("A3D3FA", 255);
		descRightBGColor = new MColor("A3D3FA", 255);
		barAreaBGColor = new MColor("306A90", 255);
	}
	
	public void setGC(GC pGc){
		gc = pGc;
	}
	
	public void updateBounds(int pAreaWidth, int pAreaHeight)
	{
		areaHeight = pAreaHeight; areaWidth = pAreaWidth;
		calcAreas();
	}
	
	public void setFullAreaParams(int pDistTop, int pDistBottom, int pDistLeft, int pDistRight, int pMarginLeft, int pMarginRight, int pMarginTop, int pMarginBottom)
	{
		distTop = pDistTop; distBottom = pDistBottom; distLeft = pDistLeft; distRight = pDistRight;
		marginLeft = pMarginLeft; marginRight = pMarginRight; marginTop = pMarginTop; marginBottom = pMarginBottom;
		calcAreas();
	}
	
	public void setBarAreaParams(MColor bg)
	{ barAreaBGColor = bg; }
	public void setDescLeftAreaParams(MColor bg)
	{ descLeftBGColor = bg; }
	public void setDescRightAreaParams(MColor bg)
	{ descRightBGColor = bg; }
	public void setDescTopAreaParams(MColor bg, MColor fontColor)
	{ descTopBGColor = bg; descTopFontColor = fontColor;}
	public void setDescBottomAreaParams(MColor bg, MColor fontColor)
	{ descBottomBGColor = bg; descBottomFontColor = fontColor;}
	
	protected void calcAreas()
	{
		descTopRect = new Rectangle(0, 0, areaWidth, distTop);
		descBottomRect = new Rectangle(0, areaHeight-distBottom, areaWidth, distBottom);
		descLeftRect = new Rectangle(0, distTop, distLeft, areaHeight-distTop-distBottom);
		descRightRect = new Rectangle(areaWidth-distRight, distTop, distRight, areaHeight-distTop-distBottom);
		barAreaRect = new Rectangle(distLeft, distTop, areaWidth-distLeft-distRight, areaHeight-distTop-distBottom);
	}
	
//  ################# PAINTING #################
//	################# -------- #################

	/**
	 * Paint procedure for the whole painting Area. Calls the painting procedures for the 
	 * other paint areas. \nOverride this only if you have structural changes to make e. g. concerning 
	 * the number of painting areas or adding parameters to an area's painting procedure.
	 */
	public void paintArea()
	{
		paintBarArea();
		paintDescTopArea();
		paintDescBottomArea();
		paintDescLeftArea();
		paintDescRightArea();
	}

// -------------------------- Actual graph painting area -----------------------------------
	/**
	 * Draws the actual graph area <br />
	 * Used to call the function without the parameters (they already exist as fields)
	 */
	protected void paintBarArea() {paintBarArea(barAreaRect, barAreaBGColor);}
	/**
	 * Draws the actual graph area <br />
	 * @param thisArea Rectangle defining the painting area
	 * @param thisBGColor the background color
	 */
	protected void paintBarArea(Rectangle thisArea, MColor thisBGColor)
	{
		//The Position the actual drawn bar is painted to (point is on the bottom of the bar, horizontally centered)
		double actBarX, actBarY;
		//The horizontal and vertical available space for the bar
		double actBarHorizspace, actBarVertSpace;
		maxCount = 1234;
		
		thisBGColor.setColor(gc); thisBGColor.setBGColor(gc);
		gc.fillRectangle(thisArea);
	}

// -------------------------- Top description area -----------------------------------------
	/**
	 * Draws the top description area <br />
	 * Used to call the function without the parameters (they already exist as fields)
	 */
	protected void paintDescTopArea() {paintDescTopArea(descTopRect, descTopBGColor, descTopFontColor);}
	/**
	 * Draws the top description area
	 * @param thisArea Rectangle defining the painting area
	 * @param thisBGColor the background color
	 * @param thisfontcolor the Color for text labels in this description area
	 */
	private void paintDescTopArea(Rectangle thisArea, MColor thisBGColor, MColor thisFontColor)
	{
		thisBGColor.setColor(gc); thisBGColor.setBGColor(gc);
		gc.fillRectangle(thisArea);
	}

// -------------------------- Bottom description area -----------------------------------------
	/**
	 * Draws the bottom description area <br />
	 * Used to call the function without the parameters (they already exist as fields)
	 */
	protected void paintDescBottomArea() {paintDescBottomArea(descBottomRect, descBottomBGColor, descBottomFontColor);}
	/**
	 * Draws the bottom description area
	 * @param thisArea Rectangle defining the painting area
	 * @param thisBGColor the background color
	 * @param thisfontcolor the Color for text labels in this description area
	 */
	protected void paintDescBottomArea(Rectangle thisArea, MColor thisBGColor, MColor thisFontColor)
	{
		thisBGColor.setColor(gc); thisBGColor.setBGColor(gc);
		gc.fillRectangle(thisArea);
	}

// -------------------------- Right description area -----------------------------------------
	/**
	 * Draws the right description area <br />
	 * Used to call the function without the parameters (they already exist as fields)
	 */
	protected void paintDescRightArea() {paintDescRightArea(descRightRect, descRightBGColor);}
	/**
	 * Draws the right description area
	 * @param thisArea Rectangle defining the painting area
	 * @param thisBGColor the background color
	 */
	protected void paintDescRightArea(Rectangle thisArea, MColor thisBGColor)
	{
		thisBGColor.setColor(gc); thisBGColor.setBGColor(gc);
		gc.fillRectangle(thisArea);
	}
	
// -------------------------- Left description area -----------------------------------------
	/**
	 * Draws the left description area <br />
	 * Used to call the function without the parameters (they already exist as fields)
	 */
	protected void paintDescLeftArea() {paintDescLeftArea(descLeftRect, descLeftBGColor);}
	/**
	 * Draws the left description area
	 * @param thisArea Rectangle defining the painting area
	 * @param thisBGColor the background color
	 */
	protected void paintDescLeftArea(Rectangle thisArea, MColor thisBGColor)
	{
		thisBGColor.setColor(gc); thisBGColor.setBGColor(gc);
		gc.fillRectangle(thisArea);
	}
	
	/**
	 * Helps you to calculate the GC.drawText() position for a text you want to center on a given point
	 * @param myText is the String you want to draw
	 * @param midX where do you want the text to center?
	 * @param topMidY where do you want the text to center? (defines the text's top border)
	 * @param metrics the fontMetrics, e. g. by your GC parameter
	 * @return a point which coordinates you can use directly in your drawText() call
	 */
	protected Point calcTextXY(String myText, int midX, int topMidY, FontMetrics metrics)
	{
		int leftX = midX - (myText.length()*metrics.getAverageCharWidth()) / 2;
		int leftY = topMidY;
		return new Point(leftX, leftY);
	}
	
}

Subklasse:

Java:
package org.jcryptool.analysis.freqanalysis.ui.graphtools;

import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;

public class ModifiedGraph extends Graph
{

	public ModifiedGraph(GC gc, int areaWidth, int areaHeight) {
		super(gc, areaWidth, areaHeight);
		// TODO Auto-generated constructor stub
	}
	
	@Override
	private void paintDescTopArea(Rectangle thisArea, MColor thisBGColor, MColor thisFontColor)
	{
		thisBGColor.setColor(gc); thisBGColor.setBGColor(gc);
		gc.fillRectangle(thisArea);
		Point test = calcTextXY("haha override xP", areaWidth/2, 1, gc.getFontMetrics());
		gc.drawText("haha override xP", 30, 1);
	}
	
}
 
S

SlaterB

Gast
ein e t w a s kürzeres Beispiel
Java:
class A
{
    protected void test()
    {
    }
}


class B
    extends A
{
    private void test()
    {
    }
}
hätte es nicht auch getan? ;)
immer schön Probleme identifizeren und extrahieren

eine protected-Methode kannst du in der Subklasse nicht private machen,
definiere sie dort auch protected
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Klassen Override Problem Allgemeine Java-Themen 7
L Eclipse Editieren des Code templates für Override methods Allgemeine Java-Themen 2
G Override String.contains Allgemeine Java-Themen 2
reibi Annotation @Override Allgemeine Java-Themen 6
R Fehler:method does not override a method from its superclass Allgemeine Java-Themen 3
T Umstellung von Java6 auf 5 - @Override ist nun ein Fehler! Allgemeine Java-Themen 14
Zrebna Wieso sollte man Null-Prüfungen nicht mit Optional-Objekten nutzen? Allgemeine Java-Themen 13
kodela Textfeld nicht rechteckig Allgemeine Java-Themen 10
G Doppelklick auf Javaprogramm klapt nicht Allgemeine Java-Themen 1
W Timer terminiert nicht Allgemeine Java-Themen 5
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
W Überflüssige Deklaration vermeiden...war da nicht mal was? Allgemeine Java-Themen 3
N lwjgl kann textureSampler nicht finden Allgemeine Java-Themen 4
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
T .Jar kann man nicht ausführen Allgemeine Java-Themen 18
P JDK nicht installiert in Net Object Fusion Allgemeine Java-Themen 7
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
N Regex schlägt nicht an Allgemeine Java-Themen 10
Y Wieso krieg ich die Unit Tests nicht hin Allgemeine Java-Themen 55
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
G Popup wird nicht sichtbar Allgemeine Java-Themen 9
8u3631984 Funktions Parameter mit Lombok "NonNull" annotieren wird in Jacococ Testcoverage nicht herausgefiltert Allgemeine Java-Themen 3
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
OnDemand ApacheCommon FTP Client zuckt nicht Allgemeine Java-Themen 3
T JavaPoet - (noch) nicht existente Typen Allgemeine Java-Themen 2
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
C Was passt hier nicht bei der Calendar-Class Allgemeine Java-Themen 2
T Testing JUnit5: try ... catch arbeitet nicht sauber Allgemeine Java-Themen 6
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
OnDemand MemoryLeak nicht zu finden Allgemeine Java-Themen 26
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
OnDemand Ram Freigabe erfolgt nicht nach Prozessende Allgemeine Java-Themen 18
OnDemand XML desializing Attribute bringt nicht erwartetes Ergebnis Allgemeine Java-Themen 16
T ImageIcon wird nicht angezeigt Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
stormyark TikTakToe funktioniert nicht Allgemeine Java-Themen 10
N Warum wird die For Schleife nicht betreten Allgemeine Java-Themen 4
Tiago1234 Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 38
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
I "Neues" Lizenzmodell Oracle - JRE nicht mehr zur Redistribution freigegeben? Allgemeine Java-Themen 16
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
A code wird nicht ausgeführt Allgemeine Java-Themen 3
Blender3D Alte Beiträge nicht mehr vorhanden Allgemeine Java-Themen 6
M Warum hat Java dieses und jenes nicht... Allgemeine Java-Themen 8
W Bilder werden in App mit Jar-Datei nicht angezeigt Allgemeine Java-Themen 15
Micha43 Applet *.jar läuft nicht auf dem Mac Allgemeine Java-Themen 8
M Warum bekommen ich den Result nicht ? Allgemeine Java-Themen 17
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
OnDemand RegEx /compilebekomme nicht die erwarteten Werte Allgemeine Java-Themen 9
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
P String.replace() funktioniert nicht? Allgemeine Java-Themen 3
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
P Karate API Test läuft nicht durch . initializationError Allgemeine Java-Themen 21
N nicht static und auch nicht new Allgemeine Java-Themen 3
Z macOS java konnte nicht entfernt werden xpc verbindungsfehler Allgemeine Java-Themen 4
T Schaltfläche wird nicht gefunden Allgemeine Java-Themen 4
boschl2000 Springerproblem-Implementierung funktioniert nicht richtig Allgemeine Java-Themen 1
F Getter Methode aufrufen funktioniert nicht Allgemeine Java-Themen 1
N Gierigen Regex in nicht-gierigen umwandeln Allgemeine Java-Themen 4
N Regulärer Ausdruck funktioniert nicht Allgemeine Java-Themen 6
AleXusher Hauptklasse startlösung konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 1
G @PostConstruct Annotation nicht mehr gültig ? Allgemeine Java-Themen 7
L Objekte in Set nicht gefunden Allgemeine Java-Themen 13
T Projekt baut nicht mehr/lässt sich nicht mehr ausführen Allgemeine Java-Themen 6
izoards log4j2 will nicht.... Allgemeine Java-Themen 15
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
1Raini Java if-Abfrage funktioniert nicht! Allgemeine Java-Themen 3
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
I serialVersionUID - explizit vergeben oder nicht? Allgemeine Java-Themen 6
MiMa Vorhandenes das nicht existiert?? Allgemeine Java-Themen 7
LimDul Hä? Lambda-Ausdruck geht, Methoden-Referenz nicht Allgemeine Java-Themen 8
O Jar lässt sich auf bestimmten Pc nicht starten Allgemeine Java-Themen 18
T Fremde Typen mockt man nicht? Allgemeine Java-Themen 3
Killunox MaxHeap Zuweisung unter Linux funktioniert nicht Allgemeine Java-Themen 1
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
B neuroph hält beim XOR lernen nicht an Allgemeine Java-Themen 13
kodela JDialog zeigt Text nicht an Allgemeine Java-Themen 5
Dann07 Java-Programm findet DLLs nicht! Allgemeine Java-Themen 20
D Twitch API mit HttpURLConnection läuft nicht? Allgemeine Java-Themen 0
M Test geht auf Travis und mit Github Action schief aber nicht lokal Allgemeine Java-Themen 3
R Threads Clip loop loopt nicht Allgemeine Java-Themen 2
Dann07 MP3 Datei abspielen funktioniert nicht Allgemeine Java-Themen 6
W Server-Thread schreibt nicht alle Dateien Allgemeine Java-Themen 6
OnDemand JMS Messages nicht abgeholt Allgemeine Java-Themen 0
O Aus JAR-Datei erstellte EXE-Datei funktioniert nicht Allgemeine Java-Themen 10
A Mp3 Player funktioniert nicht Allgemeine Java-Themen 0
W String -> byte[] -> String - Sieht jemand was ich nicht sehe? Allgemeine Java-Themen 10
M Console geht nicht auf (Windows 10) Allgemeine Java-Themen 3
J Hilfe, Jar Datei kann nicht ausgeführt werden Allgemeine Java-Themen 2
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
W Javac nicht bei Installation installiert Allgemeine Java-Themen 9
S HTML den ich von einer URL hole nicht identisch mit dem HTML im Browser Allgemeine Java-Themen 1
S Java.exe exestiert, aber irgendwie auch nicht Allgemeine Java-Themen 11
D ArrayListe delete Methode klappt nicht Allgemeine Java-Themen 12

Ähnliche Java Themen

Neue Themen


Oben