App installieren
How to install the app on iOS
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
[JAVA] Interfaces/abstrakte Klassen
- Ersteller nightsky99
- Erstellt am
nightsky99
Grand Admiral Special
- Mitglied seit
- 25.11.2001
- Beiträge
- 2.043
- Renomée
- 19
- Standort
- Wuppertal
- Mein Laptop
- Asus AJ7
- Prozessor
- Q8200 @ 3.1 Ghz
- Mainboard
- Asus P5Q
- Kühlung
- Scythe Mugen + Retention
- Speicher
- 4 x 1 GB AData Vitesta 800 xtreme
- Grafikprozessor
- Asus Radeon 5850 @ Accelero S1 Rev. 2
- Display
- HP w2228h
- HDD
- Supertalent Ultradrive 64GB SSD, WD 640GB Eco Green Platte
- Optisches Laufwerk
- LG GSA-H44 blabla
- Soundkarte
- Creative Audigy 2 ZS
- Gehäuse
- Antec P160 -voll verdämned-
- Netzteil
- BeQuiet 400W
- Betriebssystem
- Win7
- Webbrowser
- Feuerfuchs
- Verschiedenes
- Temp: , idle: 40°C , last: 50°C @ 3.1 Ghz @ 1.128V
Da ich morgen meine mündliche Prüfung in Informatik ablegen muss und schon eine MENGE gelernt habe, quält mich eine Frage:
Was ist Unterschied von einem Interface und einer abstrakten Klasse in Java? Bis auf die Tatsache das man von mehreren Interfaces erben kann, aber nur von einer Klasse (also eine Art Mehrfachvererbung).
Ich mein bei beiden muss man die Methoden die in der Oberklasse leer implentiert worden sind ausschreiben in den Unterklassen, d.h. auf der Basis der Polymorphie können die Implentierungen unterschiedlich sein. Aber wie entscheide ich ob ich eine abstrakte Klasse nehme oder ein Interface
Weiss da jemand eine Antwort drauf? (lassen wir die Mehrfachvererbung außen vor)
Was ist Unterschied von einem Interface und einer abstrakten Klasse in Java? Bis auf die Tatsache das man von mehreren Interfaces erben kann, aber nur von einer Klasse (also eine Art Mehrfachvererbung).
Ich mein bei beiden muss man die Methoden die in der Oberklasse leer implentiert worden sind ausschreiben in den Unterklassen, d.h. auf der Basis der Polymorphie können die Implentierungen unterschiedlich sein. Aber wie entscheide ich ob ich eine abstrakte Klasse nehme oder ein Interface
Weiss da jemand eine Antwort drauf? (lassen wir die Mehrfachvererbung außen vor)
Technisch dürfte es eigentlich keinen Unterschied geben. Dürfte reine Formsache sein, in C++ hast du nämlich keine Interfaces.
Allgemein gesehen kann ein Interface keinen Code enthalten - eine Klasse die du vererbst schon.
Wenn die Klasse allerdings abstrakt ist kann die auch keinen Code enthalten, von daher dürfte es also keinen Unterschied geben.
Allgemein gesehen kann ein Interface keinen Code enthalten - eine Klasse die du vererbst schon.
Wenn die Klasse allerdings abstrakt ist kann die auch keinen Code enthalten, von daher dürfte es also keinen Unterschied geben.
stimmt nicht.
eine abstakte Klasse kann Code enthalten - Interfaces nicht.
Ein Interface ist mehr oder weniger wie ein Header File in C++ enthält also nur die Signaturen der Funktionen (jedoch nicht den Code).
Abstrakte Klassen können aber im Gegensatz zu normalen Klassen nicht instanziert werden.
Als abstrakt gekeinnzeichnete Funktionen müssen in Klassen, welche von der abstrakten Klasse erben implementiert werden (wie bei Interfaces).
siehe auch hier:
http://java.sun.com/docs/books/tutorial/java/javaOO/abstract.html
eine abstakte Klasse kann Code enthalten - Interfaces nicht.
Ein Interface ist mehr oder weniger wie ein Header File in C++ enthält also nur die Signaturen der Funktionen (jedoch nicht den Code).
Abstrakte Klassen können aber im Gegensatz zu normalen Klassen nicht instanziert werden.
Als abstrakt gekeinnzeichnete Funktionen müssen in Klassen, welche von der abstrakten Klasse erben implementiert werden (wie bei Interfaces).
siehe auch hier:
http://java.sun.com/docs/books/tutorial/java/javaOO/abstract.html
Im Endeffekt also wie eine C++ Klasse die noch irgendeinen virtual Teil enthält der noch hinzu-abgeleitet werden muss.
Naja, Klassen gefallen mir in C++ besser, allerdings vermisse ich da die Java Interfaces. Dafür gehen in C++ eben die wildesten Vererbungsgeschichten, jede Klasse kann mit jeder anderen Klasse Kinder und Enkel bekommen, Inzucht ist kein Problem und Fremdgehen tut jede Klasse früher oder später sowieso mal.
Wie im richtigen Leben . Und da sage nochmal einer Progger wären Realitätsfern
Naja, Klassen gefallen mir in C++ besser, allerdings vermisse ich da die Java Interfaces. Dafür gehen in C++ eben die wildesten Vererbungsgeschichten, jede Klasse kann mit jeder anderen Klasse Kinder und Enkel bekommen, Inzucht ist kein Problem und Fremdgehen tut jede Klasse früher oder später sowieso mal.
Wie im richtigen Leben . Und da sage nochmal einer Progger wären Realitätsfern
Eigentlich ist das sogar Absicht, dass es sowas wie die Mehrfachvererbung wie unter C++ gibt, weil das zu sehr unübersichtlichen und zum Teil auch sinnlosen Code führt wenn die Vererbung falsch angewendet wird.
Wobei... ich hab heut auch schon genug sinnlosen Java Code gesehn... Also ich bin der Meinung man sollte nicht zu viel mit Vererbung machen.
Klassen, die von 3 abstrakten Klassen und 2 Interfaces erben sind nicht wirklich leicht zu ändern und zu lesen...
Man sollte sich lieber eher solch schöne Patterns wie ValueObjects, DAOs und Class-Factory anschauen und diese sinnvoll einsetzen. Oder Facades und das alles bei J2EE.
Das hilft meist mehr als die tollste Vererbung.(leider lernt man das aber meist nicht an dern Unis)
Wobei... ich hab heut auch schon genug sinnlosen Java Code gesehn... Also ich bin der Meinung man sollte nicht zu viel mit Vererbung machen.
Klassen, die von 3 abstrakten Klassen und 2 Interfaces erben sind nicht wirklich leicht zu ändern und zu lesen...
Man sollte sich lieber eher solch schöne Patterns wie ValueObjects, DAOs und Class-Factory anschauen und diese sinnvoll einsetzen. Oder Facades und das alles bei J2EE.
Das hilft meist mehr als die tollste Vererbung.(leider lernt man das aber meist nicht an dern Unis)
Original geschrieben von PeterBond
Eigentlich ist das sogar Absicht, dass es sowas wie die Mehrfachvererbung wie unter C++ gibt, weil das zu sehr unübersichtlichen und zum Teil auch sinnlosen Code führt wenn die Vererbung falsch angewendet wird.
Wobei... ich hab heut auch schon genug sinnlosen Java Code gesehn... Also ich bin der Meinung man sollte nicht zu viel mit Vererbung machen.
Klassen, die von 3 abstrakten Klassen und 2 Interfaces erben sind nicht wirklich leicht zu ändern und zu lesen...
Man sollte sich lieber eher solch schöne Patterns wie ValueObjects, DAOs und Class-Factory anschauen und diese sinnvoll einsetzen. Oder Facades und das alles bei J2EE.
Das hilft meist mehr als die tollste Vererbung.(leider lernt man das aber meist nicht an dern Unis)
Ja, ich nehm die Dinger auch praktisch ausschließlich als Interface. Code vererbe ich wirklich ungern, weil das dann sehr unsauber wird.
Aber ein Interface aus einem Interface, welches 2 andere Interfaces implementiert die schließlich eine Klasse bilden... das hat was
(mit Interfaces mein ich C++ Klassen ohne Code)
nightsky99
Grand Admiral Special
- Mitglied seit
- 25.11.2001
- Beiträge
- 2.043
- Renomée
- 19
- Standort
- Wuppertal
- Mein Laptop
- Asus AJ7
- Prozessor
- Q8200 @ 3.1 Ghz
- Mainboard
- Asus P5Q
- Kühlung
- Scythe Mugen + Retention
- Speicher
- 4 x 1 GB AData Vitesta 800 xtreme
- Grafikprozessor
- Asus Radeon 5850 @ Accelero S1 Rev. 2
- Display
- HP w2228h
- HDD
- Supertalent Ultradrive 64GB SSD, WD 640GB Eco Green Platte
- Optisches Laufwerk
- LG GSA-H44 blabla
- Soundkarte
- Creative Audigy 2 ZS
- Gehäuse
- Antec P160 -voll verdämned-
- Netzteil
- BeQuiet 400W
- Betriebssystem
- Win7
- Webbrowser
- Feuerfuchs
- Verschiedenes
- Temp: , idle: 40°C , last: 50°C @ 3.1 Ghz @ 1.128V
Also ich hab an der Uni die wichtigsten Patterns gelernt, Observer, Factory, Fascade, Singelton, Proxy usw....und in einer Stunde muss ich einen vortrag darüber halten
Das Prob ist man muss diese Muster erstmal anwenden können, so aus dem ff geht das bei mir nich...muss man also schon mehrmals programmieren damit das in Fleisch und Blut übergeht.
Was die Interfaces + abstrakten Klassen betrifft: so viele Unterschiede gibs da scheinbar wirklich nicht, bis auf Mehrfachvererbung und Implementation is ja aber nich schlimm
Das Prob ist man muss diese Muster erstmal anwenden können, so aus dem ff geht das bei mir nich...muss man also schon mehrmals programmieren damit das in Fleisch und Blut übergeht.
Was die Interfaces + abstrakten Klassen betrifft: so viele Unterschiede gibs da scheinbar wirklich nicht, bis auf Mehrfachvererbung und Implementation is ja aber nich schlimm
Ähnliche Themen
- Antworten
- 0
- Aufrufe
- 52K
- Antworten
- 0
- Aufrufe
- 142K
- Antworten
- 0
- Aufrufe
- 134K
- Antworten
- 0
- Aufrufe
- 20K