Interfaces durch abstrakte Klassen ersetzbar?

Status
Nicht offen für weitere Antworten.

Rattamahatta

Neues Mitglied
Hallo zusammen!

Ich habe gerade meine Studium in Informatik gestartet. Hier lerne ich u.a. Java.
Hier ist die Frage aufgekommen ob sich jedes Interface durch abstrakte Klassen ersetzen lässt. Ich denke das Thema habe ich soweit verstanden und in trivialen Fällen lässt sich das auch realisieren.

Code:
interface size
{
	int getWidth();
	int getHeight();
}
Code:
public class image implements size
{
	int width;
	int height;

	public int getWidth() {
		return width;
	}
	public int getHeight() {
		return width;
	}	
}

Nun die Realisierung mit abstrakten Klassen:
Code:
public abstract class size
{
	public abstract int getWidth();
	public abstract int getHeight();
}
Code:
public class image extends size
{	
	int width;
	int height;

	public int getWidth() {
		return width;
	}
	public int getHeight() {
		return width;
	}
}

Ich denke, dass beide Implementierungen das gleiche realisieren.
Jetzt frage ich mich nur, ob das wirklich in allen Fällen Interfaces auf diesem oder einen anderen Weg ersetzen lassen, oder ob es doch spezielle Fälle gibt, bei denen nur Interfaces zu nutzen sind.

Wäre euch sehr dankbar für eine kleine Aufklärung! :D

Gruß,
Rainer
 
R

Roar

Gast
theoreitsch könnte man jedes interface durch eine abstrakte klasse ersetzen, würd ich ma so sagen, aber damit machst du ja den sinn der interfaces kaputt, nämlich einen ersatz zur mehrfachvererbung. also meine antwort wär: ja, aber is sinnlos.
 

Bleiglanz

Gesperrter Benutzer
klar: jedes Interface lässt sich durch eine passende abstrakte Klasse ersetzen, kein Problem; schwierig wirds nur für die "Anwender" dieser Interfaces/Klassen

es ist halt so, dass man in Java nur von EINER Klasse erben kann...

wenn du also so vor dich hinprogrammierst und etwas in der Hand hast, dass - aus welchen Gründen auch immer - schon von FooBarObject erbt, dann kannst du ohne Probleme ein weiteres Interface "size" implementieren...aber die abstrakte Klasse ist dann "aussen vor" :)

BTW: Klassen und Interfacenamen GrossSchreiben
 
B

bygones

Gast
klar kann man das, Interfaces sind ja spezielle Abstrakte Klassen !

aber wie die anderen schon meinte - nicht bzw nur sehr wenig sinnvoll !
 

Mag1c

Top Contributor
Hi,

<SenfModus=ON>
Technisch gesehen geht das sicherlich mit der Einschränkung, daß man irgendwann feststellt, daß Java (leider) keine Mehrfachvererbung vorsieht.
Aus Design-Sicht haben aber beide Konzepte ihre Berechtigung die für unterschiedliche Zwecke eingesetzt werden. Wer nun daher kommt, und einfach so aus Interfaces abstrakte Klassen macht (ohne dazu einen designtechnischen Grund zu haben), der hat wohl von OO-Design keine Ahnung :bae:
<SenfModus=OFF>

Gruß
Mag1c
 

Rattamahatta

Neues Mitglied
Ich danke euch erstmal für die zahlreichen Antworten.
Naja, dass es oftmals wenig sinnvoll ist Interfaces durch abstrakte Klassen zu ersetzen war mir klar. Leider musste ich an der Uni schon öfters feststellen dass hier vieles gemacht wird was nicht unbedingt sinnvoll ist. :D
 

SnooP

Top Contributor
Naja - da muss ich aber mal intervenieren ;) - gerade an der Uni wird sowas bestimmt nicht gemacht. Das Interfaces Mehrfachvererbung zulassen, Klassen in Java jedoch nicht, ist für die Theorie doch sehr interessant - das erfordert ja auch, dass man sich halt entsprechend Gedanken darüber macht, wie und wann man Interfaces einsetzen muss/kann und wann ne abstrakte Klasse mal ganz sinnvoll ist...
 

Bleiglanz

Gesperrter Benutzer
abstrakte Klassen sind

schlecht, weil sie den "Anwender" zwingen von dieser zu erben und das nicht immer möglich ist

gut, weil sie Methodenimplementierungen enthalten können, d.h. der "Anwender" diese nicht mehr schreiben muss

Interfaces sind

gut, weil man mehrere davon erweitern kann

schlecht, weil ALLE Methoden eines Interfaces implementiert werden müssen


IMHO ist es doch meistens klar: wenn es keine sinnvollen Defaultimplementierungen gibt, dann nimmt man IMMER ein Interface anstatt einer abstrakten Klasse

wenn es solche gibt, kann man immer noch ein Interface definieren UND eine abstrakte Klasse, die dieses Interface implementiert und eben ein paar Methoden gleich mitimplementiert (siehe WindowsAdapter usw.)
 

AlArenal

Top Contributor
Ich sag mal, wenn ich mir ein Design überlege, in dem mehrere Klassen am Ende diegleichen Interfaces implementieren, es aber keinen Sinn macht denen eine gemeinsame instanziierbare Basisklasse zu verpassen, bastel ich mir eine abstrakte Klasse welchen emien Interfaces implementiert und lasse meine Zielklassen von dieser erben.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Wozu dient Interfaces? Java Basics - Anfänger-Themen 6
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
M Interfaces Aufgabe Java Basics - Anfänger-Themen 2
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
I XML und Interfaces aus anderen Projekten Java Basics - Anfänger-Themen 3
8u3631984 Record - Interfaces Java Basics - Anfänger-Themen 4
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
H Sinn von Interfaces Java Basics - Anfänger-Themen 21
B JaxB und Interfaces? Java Basics - Anfänger-Themen 2
M Funktionale Interfaces Java Basics - Anfänger-Themen 3
Kirby.exe Frage zur Verwendung von Interfaces Java Basics - Anfänger-Themen 6
H Frage zu interfaces Java Basics - Anfänger-Themen 1
J Zweck von Interfaces immer noch nicht klar Java Basics - Anfänger-Themen 3
M Klasse erbt von Interfaces Java Basics - Anfänger-Themen 6
T Interfaces in erbenden Klassen Java Basics - Anfänger-Themen 2
T Abstrakte Klasse und Interfaces Java Basics - Anfänger-Themen 12
H Polymorphie Interfaces und statischer Typ Java Basics - Anfänger-Themen 33
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
F Exceptions in Interfaces Java Basics - Anfänger-Themen 4
F Interface Warum Interfaces? Java Basics - Anfänger-Themen 5
R interfaces Java Basics - Anfänger-Themen 1
B Interfaces Java Basics - Anfänger-Themen 6
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
J Interfaces? Java Basics - Anfänger-Themen 32
M Erstellung Interfaces....totale Anfängerfrage Java Basics - Anfänger-Themen 16
S Erste Schritte Innere Klassen und Interfaces Java Basics - Anfänger-Themen 2
J Wofür dienen Interfaces ? Java Basics - Anfänger-Themen 1
Hijo2006 Frage zu Interfaces Java Basics - Anfänger-Themen 21
Hacer Interfaces implementieren Java Basics - Anfänger-Themen 7
H Implementierung eines Interfaces erweitern Java Basics - Anfänger-Themen 13
L Via Interfaces unterschiedliche Klassen ansprechen Java Basics - Anfänger-Themen 8
A Verwendung von Interfaces Java Basics - Anfänger-Themen 7
J Interfaces Java Basics - Anfänger-Themen 15
D Frage bzgl. Interfaces Java Basics - Anfänger-Themen 10
D Interface Verständnisprobleme von Interfaces Java Basics - Anfänger-Themen 5
D Interface Interfaces und abstrakte Klassen implementieren Java Basics - Anfänger-Themen 4
S Rollen verändern, Interfaces austauschen wie? Java Basics - Anfänger-Themen 10
K Interfaces/Klassen etc. Java Basics - Anfänger-Themen 6
F Implementierung von Interfaces -> Problem mit main Java Basics - Anfänger-Themen 12
S Verständnisproblem bei Interfaces Java Basics - Anfänger-Themen 6
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
M Frage zu Generics in Klassen, Abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
O Java Interfaces für andere Programmiersprachen zur Verfuegung stellen? Java Basics - Anfänger-Themen 2
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
G Instanzen eines Interfaces erzeugen Java Basics - Anfänger-Themen 7
M Compiler-Fehler Alle Methoden eines Interfaces Implementiert dennoch Fehler Java Basics - Anfänger-Themen 3
V Interface Interfaces und abstrakte Klassen Java Basics - Anfänger-Themen 3
F Best Practice UML/Planung eines Projektes (Klassen, Interfaces, ...) Java Basics - Anfänger-Themen 0
V Vererbung Vererbung, Interfaces und OOP... Java Basics - Anfänger-Themen 10
C Sinn eines Interfaces? Java Basics - Anfänger-Themen 4
A Interface Poymorphismus bei Interfaces Java Basics - Anfänger-Themen 2
Pentalon Eclipse JUNO keine Vorschläge von Methoden bzw. Interfaces der eigenen Klassen Java Basics - Anfänger-Themen 5
R Mehrere Interfaces(Comparable, ...) Java Basics - Anfänger-Themen 2
J Interfaces Abstrakte Klassen Java Basics - Anfänger-Themen 15
D Interfaces und allgemeingültige Methodenaufrufe Java Basics - Anfänger-Themen 6
H Erste Schritte 2 User Interfaces für eine Anwendung Java Basics - Anfänger-Themen 7
S OOP Wann Proxies und Interfaces? Java Basics - Anfänger-Themen 3
M Interface @Inject mit Interfaces? Java Basics - Anfänger-Themen 2
F Interface Unterschied von Attributen und Methoden bei abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
V mehrfachvererbung unter interfaces Java Basics - Anfänger-Themen 10
J Interface Wie funktioniert das mit den Interfaces. Ich verstehe es einfach nicht! :( Java Basics - Anfänger-Themen 15
T Interfaces und Implementierungen Java Basics - Anfänger-Themen 12
S Interface mehrere Interfaces Java Basics - Anfänger-Themen 2
M Vererbung Problem bei Interfaces Java Basics - Anfänger-Themen 8
H Dynamische Bindung mit Interfaces und LinkedList Java Basics - Anfänger-Themen 7
F Interfaces Java Basics - Anfänger-Themen 4
M Frage zu Interfaces Java Basics - Anfänger-Themen 3
N Generics und Interfaces Java Basics - Anfänger-Themen 5
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
P OOP Aufruf eines Interfaces Java Basics - Anfänger-Themen 4
N OOP Vererbung von Interfaces Java Basics - Anfänger-Themen 12
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
P Frage zu Interfaces Bsp. Java Basics - Anfänger-Themen 9
A Deklarationen in abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 11
R Adapterklassen vs Interfaces Java Basics - Anfänger-Themen 6
P Interfaces -> eins oder mehrere für eine Anwendung? Java Basics - Anfänger-Themen 9
2 Interfaces, Polymorphie und Methoden. Java Basics - Anfänger-Themen 14
A Obstlager Interfaces Java Basics - Anfänger-Themen 7
K Theor. Frage zu Interfaces Java Basics - Anfänger-Themen 30
T Frage zu Interfaces und Abstrakten Klassen Java Basics - Anfänger-Themen 4
J Interfaces Java Basics - Anfänger-Themen 14
L Interfaces Java Basics - Anfänger-Themen 5
J spiel "Gefangenendilemma" Probleme mit Interfaces Java Basics - Anfänger-Themen 8
H Interfaces in java? Java Basics - Anfänger-Themen 2
A OOP Interfaces mit gleichem Methoden Java Basics - Anfänger-Themen 15
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
S Implementierung gegen Interfaces / List, ArrayList, LinkedList Java Basics - Anfänger-Themen 11
D Interfaces / Schnittstellen Java Basics - Anfänger-Themen 8
I Probleme mit Interfaces Java Basics - Anfänger-Themen 4
K Interfaces "Schreibaufwand" Java Basics - Anfänger-Themen 53
I Interfaces Java Basics - Anfänger-Themen 34
bigbasti Warum genau braucht man Interfaces? Java Basics - Anfänger-Themen 10
A Programmieren gegen Interfaces Java Basics - Anfänger-Themen 4
I Frage zu Collection und List Interfaces Java Basics - Anfänger-Themen 2
7 Interfaces - Aufbau Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben