Klassen Abstracte Classe als Vereinfachung

EndiUser

Neues Mitglied
Hallo liebes Forum,


cih bin relativ neu in Java und spiele gerade etwas mit abstrakten Klassen und Schnittstellen.
Dazu hatte ich folgende Idee:

Ein Program muss ja immer per "static void main()" gestartet werden. Nun soll das Pogramm aber nur 2 Aufgaben erfüllen:

Java:
doOne();
doTwo();

D.h, ich hätte gerne so ne Klasse:

Java:
public class myTest extends AbsKlasse{

        @Override
	public void doOne() {
		// erste dinge
	}
	
	@Override
	public void doTwo() {
		// der rest
	}

}

Und die AbsKlasse soll dafür sorgen, dass ein main Methode eingeführt wird, die doOne und doTwo ausführen!
Sodass wenn die Klassen kompiliert ist, ich das ganze über einen normalen Aufruf "java klasse.class" ausführen kann.

Hacke, einfach gedanklich gerade... auch wegen static und this.


Danke schon mal!
 

kaoZ

Top Contributor
Machen kannst du da selbstverständlich , aber ob das dem Prinzip der Vererbung entspricht ist ein anderes Thema, normalerweise definiert man eine main Methode unabhängig von der Anwendungslogik, die main Methode dient normalerweise lediglich als Einstiegspunkt in deiner Anwendung.

Vererben würde ich nur da wo es auch wirklich Sinn macht. - dies ist hier nicht gegeben.

Um einen gewissen grad an Abstraktion zu erlangen kann man entweder gegen ein Interface oder eine Abstrakte Klasse Programmieren anstatt sich auch Konkrete Klassen zu stützen. (Kohäsion , lose Kopplung)

Zudem definieren Abstrakte Klassen Gemeinsamheiten ( z.B Attribute) , und Interfaces eine art Rolle , z.b wenn ein Objekt ausführbar ist ( Executor Framework ) mit den Interface Executable.

oder anhand eines anderen Beispiels

Auto - > Fahrbar
Motorrad -> Fahrbar

so könnten beide das Interface Driveable implementieren und von der Klasse Fahrzeug erben.

Fahrzeug würde in diesem Fall als Abstraktion die Attribute definieren (z.B Gemeinsamheiten wie Name, Form, Hersteller, Farbe usw.) und die Subklasse Auto, wie auch Motorrad wäre eine Konkretisierung eines Fahrzeugs, man könnte diese natürlich noch weiter Abstrahieren und erst später konkretisieren , so könnte dann Auto wiederrum auf verschiedene "Arten" von Autos aufgeteilt werden , Elektroauto ...usw. usw..

merk dir einfach das Vererbung nur da Sinn macht wo eine
Code:
[I][COLOR="Red"]is-a[/COLOR][/I]
Beziehung gegeben ist.

Auto ist ein Fahrzeug z.B

oder Abstrakter

Audi ist ein Auto

Die Hierarchie wäre dann

Fahrzeug <- Auto <- Audi // wobei dann Audi die Konkrete Klasse wäre.
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Das Problem an der ganzen Geschichte die main Methode über ein Interface zur Verfügung zu stellen ist das

1. Alle Klassen die das Interface Implementieren die Methoden bereitstellen müssen
2. die Implementierung von jeder Klasse speziell erfolgen muss

und das macht in diesem Fall einfach keinen Sinn

2 Klassen die beide das interface Implementieren bedeutet in diesem Fall dann auch 2, vielleicht unterschiedlich implementierte main Methoden .....

Interfaces sollte man nutzen insofern eine oder mehrere Klassen eine bestimmte rolle erfüllen müssen , bzw. eben als das was sie sind , Schnittstellen zwischen verschiedenen Klassen .
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Abstracte Methoden in Subklassen? Java Basics - Anfänger-Themen 2
D Interface, abstracte Klassen Java Basics - Anfänger-Themen 5
K Unterschied abstracte Klasse und Interface Java Basics - Anfänger-Themen 7
G abstracte Klassen und deren Unterklassen Java Basics - Anfänger-Themen 10
A Frage zu super, abstracte Klassen und Kapselung Java Basics - Anfänger-Themen 3
B abstracte Klassen Java Basics - Anfänger-Themen 3
F Methoden aus anderer classe über nehmen Java Basics - Anfänger-Themen 10
K Erste Schritte Classe in andere Einfügen?? Java Basics - Anfänger-Themen 12
A Classe um Fenster(classe) zu schließen? Java Basics - Anfänger-Themen 4
Q Classe durch Buttonklick im Layout öffnen Java Basics - Anfänger-Themen 4
S classe unter windows kompiliert läuft nicht unter linux? Java Basics - Anfänger-Themen 8
I neue Methode zu Classe z.B. String hinzufügen Java Basics - Anfänger-Themen 7
L freeware Liniendiagramm Classe Java Basics - Anfänger-Themen 3
R Xml daten aus anderer classe beziehen. Java Basics - Anfänger-Themen 3
R pfad übergeben von einer classe zu anderen. Java Basics - Anfänger-Themen 14
S JTextField in anderer Classe mit getter Methode auslesen. Java Basics - Anfänger-Themen 2
M Keine Anzeige, wenn ich die Classe umbenenne Java Basics - Anfänger-Themen 13
Ocram Variablen Vereinfachung einer Bedingung Java Basics - Anfänger-Themen 18
C Vereinfachung eines Java Programmes Java Basics - Anfänger-Themen 5
A Vereinfachung instanceof Java Basics - Anfänger-Themen 12
G Vereinfachung einer if Konstruktion Java Basics - Anfänger-Themen 8
S Frage zur Vereinfachung Java Basics - Anfänger-Themen 2
D Vereinfachung dieses Programms Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben