# Aus Superklasse Methode aus aufrufender Subklasse starten



## A.T. (9. Mai 2006)

Hallo,
habe gerade ein Problem oder vielleicht auch nur ein Brett vor dem Kopf...
So hier erst mal mein Code, denke ist alles wesentliche drin das man mich versteht. Hoffe ich jeden falls...

```
public class SmoothingDifferentiateAlgorithm extends Algorithm implements
		MapConstants {

	public static void computAlgorithm() {
		int wiederholungen = Integer.parseInt(map.get(NUMBEROFRUNS).toString());

		ComputNormalMatrix.computNormalMatrix(map);
		if (!LRZerlegung.computLRZerlegung(map)) {
			algorithmSuccessful = false;
		} else {
			for (int i = 0; i < wiederholungen; i++) {
				computGlaettung();
			}
		}
	}

	public static void computGlaettung() {

	}
}
```


```
public class SmoothingAlgorithm extends SmoothingDifferentiateAlgorithm{
	
	public static void computGlaettung() {
	// Hier wird dann tatächlich was gemacht!
	}
}
```


```
SmoothingAlgorithm.computAlgorithm();
```

So mein Problem ist das die Methode computGlaettung() aus der Klasse SmoothingDifferentiateAlgorithm  aufgerufen wird und nicht aus der SmoothingAlgorithm Klasse. Warum ist das so? 
Neben der SmoothingAlgorithm Klasse wird es noch ein paar geben bei denne im wesentlichen nur die computeGlaettung Methode verschieden ist. Der rest ist gleich. Wie bekomme ich es jetzt hin das immer die computeGlaettung Methode aus der Subklasse aufgerufen wird die ich beim Aufruf des ganzen(3tes Codestück) angegeben habe?

Danke schon mal!
Gruß A.T.


----------



## SamHotte (9. Mai 2006)

im ersten Codestück als 'abstract' deklarieren.


----------



## Illuvatar (9. Mai 2006)

Wenn du das nicht alles static mahcen würdest, würde das auch funktionieren. Mit static macht das doch auch gar keinen Sinn ???:L


----------



## A.T. (9. Mai 2006)

Irgendwie bekomme ich das nicht hin...

Also das ist alles static weil es aus einem modalen Dialog herausaufgerufen wird und es soll davon keine Instanzen geben.


----------



## Murray (9. Mai 2006)

Statische Methode kann man aber nun einmal nicht in einer abgeleiteten Klasse überschreiben. Eventuell kannst Du ja mit einem Singleton arbeiten?


----------



## bygones (10. Mai 2006)

A.T. hat gesagt.:
			
		

> Also das ist alles static weil es aus einem modalen Dialog herausaufgerufen wird und es soll davon keine Instanzen geben.


beide argumente versteh ich nicht ?!


----------



## A.T. (10. Mai 2006)

Das erste ist vermutlich auch schwachsinn! Beim zweiten, kann doch Methoden einer Klasse nur benutzen ohne Instanzen zu erzeugen wenn ich die Static mache oder nicht?

Habe das jetzt so gelöst das ich das was wirklich gleich ist in der Superklasse schreibe und das dann aus der Subklasse herausaufrufe dann klappt das auch.

Hoffe ich mache da nicht den totalen schwachsinn!?


----------



## bygones (10. Mai 2006)

A.T. hat gesagt.:
			
		

> Das erste ist vermutlich auch schwachsinn! Beim zweiten, kann doch Methoden einer Klasse nur benutzen ohne Instanzen zu erzeugen wenn ich die Static mache oder nicht?


das stimmt schon, die Frage ist, warum du davon keine Instanz erzeugen willst ?!


----------

