Deklarationen in abstrakten Klassen und Interfaces

Hallo,

Ich habe folgende Fragen:

1. Können Datenkomponenten in abstrakten Klassen sowohl, public, privat als auch protected deklariert werden?
2. Gilt das was für Datenkomponenten in abstrakten Klassen gilt auch für deren Methoden?
3. Dürfen abstrakte Methoden ein Parameterliste haben?
4. Können in Interfaces Datenkomponenten deklariert werden? Wenn ja, mit allen oben genannten Sichtbarkeitsstati?
5. Dürfen Methoden eines Interfaces eine Parameterliste haben?

Vielen Dank schon mal für Eure Hilfe, ich hab jetzt so viel gelesen, dass ich hier gerade beim Verständnis hänge ???:L
 
T

Tomate_Salat

Gast
also ich habe mal ein Beispiel gemacht

Java:
abstract class Example 
{
	public String 	hallo="hi";
	private String  ciao ="bb";

	protected abstract String getCurrentPackage();
	public abstract void addition(int x, int y); /* Die IDE würde dir bei private sagen: Abstrakte Methoden dürfen nur public/protected sein */
}

interface IExample
{
	public String test ="abc"; /* ACHTUNG: hier steht eigentl: public final static String test="abc" */
	
	public void hallo(int test);
}

1. Wenn du damit variablen/referenzen meinst: ja
2. Methoden können nur public/protected sein (bei Interfaces: nur public)
3. ja natürlich
4. nein nur public (afaik würde er aus : [c]int test=5; [/c] [c]public final static int test=5;[/c] machen) dazu
5. ja

MFG

Tomate_Salat
 
Zuletzt bearbeitet von einem Moderator:

Ezra

Bekanntes Mitglied
2. Methoden können nur public/protected sein (auch bein Interfaces!)
Der TO sprach von Methoden einer abstrakten Klasse, nicht von abstrakten Methoden.
Methoden einer abtrakten Klasse können auch private sein.

Interfaces lassen nur public-Methoden zu, kein protected.
 
Zuletzt bearbeitet:
Dann muss ich doch noch mal fragen. Was ist der unterschied vonMethoden einer abstrakten Klasse und abstrakten Methoden?
 
Zuletzt bearbeitet:

Illuvatar

Top Contributor
Java:
public abstract class Foo {
  public void bar1() { // nicht-abstrakte methode in abstrakter klasse
    System.out.println("Hello, World");
  }
  public abstract void bar2(); // abstrakte methode
}
 
T

Tomate_Salat

Gast
Der TO sprach von Methoden einer abstrakten Klasse, nicht von abstrakten Methoden.
Methoden einer abtrakten Klasse können auch private sein.

Ja bin mal davon ausgegangen, dass sich seine Fragen auf die abstrakten Methoden bezogen haben.

Interfaces lassen nur public-Methoden zu, kein protected.
Ouh ja hast, recht. Die stelle hätte ich mir nochmal durchlesen sollen vorher, ich editiers mal um.

Edit abstrakte Methoden werden erst später definiert:

Java:
abstract class Animal
{	
	public abstract String getType();
	
	public void doIdentify() 
	{
		System.out.println("Ich bin ein " + getType());
	}
}

class Dog extends Animal
{

	@Override
	public String getType() 
	{
		return "Hund";
	}
	
}
 
Zuletzt bearbeitet von einem Moderator:
Ja bin mal davon ausgegangen, dass sich seine Fragen auf die abstrakten Methoden bezogen haben

Sie ;)

Ok...also abstrakte Methoden dürfen sowohl als public also auch privat und protected deklariert sein und Methoden eines INterfaces müssen public sein?
Beide Arten von Methoden dürfen eine Parameterliste besitzen?

Und wenn ich es richtig verstanden habe, dürfen in abstrakten Klassen auch Methoden deklariert werden die nicht abtrakt sind. Welchen Vorteil hat das? Dürfen die dann überschrieben werden? Oder werden die nur vererbt?
 

Marco13

Top Contributor
Nicht-abstrakte Methoden in abstrakten Klassen können auch überschrieben werden. Man benutzt sie aber i.a. dann, wenn mehrere nicht-abstrakte Klassen von dieser abstrakten Klasse erben, und diese Methoden für alle erbenden Klassen gleich sind
Java:
abstract class Basisklase
{
    void fürAlleGleich() { mach was bestimmtes }
    void auchFürAlleGleich() { mach was anderes bestimmtes }

    abstract void wasSpezielles();
}

class ErsterErbender extends Basisklase
{
    void wasSpezielles() // Konkrete Implementierung der methode
    {
        // Kann die nicht-abstrakten Methoden der abstrakten Basisklasse verwenden
        fürAlleGleich();
        auchFürAlleGleich();
    }
}

class ZweiterErbender extends Basisklase
{
    void wasSpezielles() // Konkrete Implementierung der methode
    {
        // Kann die nicht-abstrakten Methoden der abstrakten Basisklasse verwenden
        fürAlleGleich();
        machWasWasNurDieZweiteKlasseMacht();
        auchFürAlleGleich();
    }

    pvivate void machWasWasNurDieZweiteKlasseMacht() { ... }
}
 

Ezra

Bekanntes Mitglied
Der Anfänger ;)

Ok...also abstrakte Methoden dürfen sowohl als public also auch privat und protected deklariert sein
Nein, abstrakte Methoden sind nur public oder protected. Methoden in abstrakten Klassen, die selbst nicht abstrakt sind, können alles sein.
Lässt sich übrigens auch logisch erklären, wenn man weiß, was private bedeutet. Auf private Methoden hat man in einer Kind-Klasse keinen Zugriff mehr. Aber abstrakte Klassen sind nur dazu da, überschrieben zu werden. Darum hat eine private abstrakte Klasse keinen Sinn.

und Methoden eines INterfaces müssen public sein?
Beide Arten von Methoden dürfen eine Parameterliste besitzen?
Ja. Wenn Du Dir irgendwo unsicher bist - ausprobieren.
 

Kleiner Täuschungsversuch ;). War gestern Nacht bei der Namensgebung nicht mehr kreativer.


Nein, abstrakte Methoden sind nur public oder protected.
Upps, das privat war reingerutscht:oops: danke noch mal für deinen Hinweis!


Ja. Wenn Du Dir irgendwo unsicher bist - ausprobieren.
Bin fleißig dabei. Was bestimmt weitere Fragen zu Java aufwerfen wird. ;)

Danke für Eure Unterstützung:toll:

VG Stefie
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Deklarationen Java Basics - Anfänger-Themen 4
S Deklarationen Java Basics - Anfänger-Themen 3
S Deklarationen von Int Java Basics - Anfänger-Themen 4
K Erste Schritte Deklarationen Java Basics - Anfänger-Themen 39
M Datentypen Deklarationen und Konstruktor Java Basics - Anfänger-Themen 4
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
M Methoden Overloading in abstrakten Klassen Java Basics - Anfänger-Themen 26
F Probleme mit privaten Klassen (abstrakten Klassen) Java Basics - Anfänger-Themen 1
P OOP Sinn von abstrakten Klassen Java Basics - Anfänger-Themen 2
B in einem abstrakten Set ,Elemente einer einfache verkettete List epeichern Java Basics - Anfänger-Themen 13
G Methode einer Abstrakten Klasse aufrufen Java Basics - Anfänger-Themen 1
C Konstruktor in Abstrakten Klassen Java Basics - Anfänger-Themen 4
O Javadoc bei abstrakten Methoden Java Basics - Anfänger-Themen 1
M Frage zu Generics in Klassen, Abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
G Auf einen bestimmten Konstruktor in der abstrakten Superklasse zugreifen? Java Basics - Anfänger-Themen 2
T Interface implementieren mit Abstrakten Typen? Java Basics - Anfänger-Themen 4
F Interface Unterschied von Attributen und Methoden bei abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
T fenster schliesen und mouse events in einer nicht abstrakten klasse Java Basics - Anfänger-Themen 6
Corben Methoden Methode einer Abstrakten Klasse Java Basics - Anfänger-Themen 7
N finale Attribute in abstrakten Basisklassen Java Basics - Anfänger-Themen 6
T Frage zu Interfaces und Abstrakten Klassen Java Basics - Anfänger-Themen 4
Spin Eigenen Abstrakten Datentypen Java Basics - Anfänger-Themen 28
A Verwendung von abstrakten Klassen Java Basics - Anfänger-Themen 17
X Problem: Erben von einer abstrakten Klasse Java Basics - Anfänger-Themen 4
I [Java] Umgang mit abstrakten Klassen, Interfaceklassen (BSP) Java Basics - Anfänger-Themen 12
M Frage zu einer abstrakten Klasse Java Basics - Anfänger-Themen 16
N variablen vom typ einer abstrakten Klasse Java Basics - Anfänger-Themen 5
M instanzieren einer abstrakten Klasse? Java Basics - Anfänger-Themen 2
A Objekte von abstrakten Klassen? Java Basics - Anfänger-Themen 6
M Rückgabetype Unterklasse von einer abstrakten Klasse Java Basics - Anfänger-Themen 3
V Verständnisproblem mit Abstrakten zu Konkreten Klassen Java Basics - Anfänger-Themen 7
S Field einer abstrakten Klasse wird nicht gesetzt Java Basics - Anfänger-Themen 2
T Instanzen von abstrakten Klassen? Java Basics - Anfänger-Themen 14
S Objektrückgabe durch Factory-Methode in abstrakten Klassen Java Basics - Anfänger-Themen 4
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
Detlef Bosau Nachladen von Klassen zur Laufzeit Java Basics - Anfänger-Themen 24
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
C Array von Klassen Java Basics - Anfänger-Themen 2
monsterherz 2 Klassen daher Probs mit dem Dateinamen Java Basics - Anfänger-Themen 9
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
D Klassen Klassen Kommunikation Java Basics - Anfänger-Themen 12
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
L Best Practice Annotierte Klassen im Classpath herausfinden Java Basics - Anfänger-Themen 1
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
O Klassen Zusammenspiel zwischen 2 Klassen Java Basics - Anfänger-Themen 1
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
Speedrunner klassen aufrufen Java Basics - Anfänger-Themen 41
M Log4J (v2) nachträglich in allen Klassen hinzufügen Java Basics - Anfänger-Themen 9
D importieren eigener Klassen Java Basics - Anfänger-Themen 12
W Wo ist der Wurm in meinem Grundverständnis von Klassen? Java Basics - Anfänger-Themen 22
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
elsaaaaaa Wochentag als String ausgeben mit JDK Klassen Java Basics - Anfänger-Themen 6
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
TimoN11 Java Klassen Global einbinden Java Basics - Anfänger-Themen 1
B Inventar als einzelne Klassen anlegen? Java Basics - Anfänger-Themen 12
G Java Klassen und Instanzmethoden Java Basics - Anfänger-Themen 15
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
S Klassen instanziieren und verwenden von Getter und Setter Java Basics - Anfänger-Themen 4
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
Y Klassen Klassen und Objekte Java Basics - Anfänger-Themen 3
Y Klassen Klassen und Objekte mit set und get Java Basics - Anfänger-Themen 0
A Generischen Klassen Java Basics - Anfänger-Themen 8
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
J 2 klassen benutzen Java Basics - Anfänger-Themen 5
A Klassen und methoden Java Basics - Anfänger-Themen 15
A Bankweverwaltung mit Klassen und Methoden Java Basics - Anfänger-Themen 14
J Klassen Problem Java Basics - Anfänger-Themen 8
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
I Klassen als Datentyp nutzen? Java Basics - Anfänger-Themen 11
M Aufsplitten von Methoden in andere Klassen Java Basics - Anfänger-Themen 2
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
C Klassen objektorientiert aufteilen Java Basics - Anfänger-Themen 6
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8

Ähnliche Java Themen


Oben