Schnittstellen und Abstrakte Klassen

Status
Nicht offen für weitere Antworten.
Huhu mal wieder =)

wir haben mal wieder eine Verständnisaufgabe bekommen ,ich hab sie bisher, glaub ich zumindest, gelöst nur stehe ich vor der Frage wie und warum ich bei den konkreten Unterklassen der Abstrakten Klassen nochmal private Objektvariablen nutzen soll (lauf Aufgabe).

Aufgabenstellung wie folgt:
Die Abstrakten Klassen können Abstrakte Oberklassen besitzen und werden mitells Schnittstellen implementiert. Die Schnittstellen waren gegeben.
Nun sollen die restlichen Methoden die nicht in den Abstrakten Klassen definiert wurden in den konkreten Unterklassen der Abstrakten Klassen implementiert werden unter der Bedingung das diese konkreten Unterklassen einen öffentlichen Konstruktor und die besagte "privaten Objektvariablen" beinhalten sollen.

Konstruktoren hab ich erstellt,soweit waren auch keine Fehler und anstatt private Objektvariablen hab ich protected Variable bei:


Code:
abstract class AbstractParallelogram implements Parallelogram{
	
	protected double side2,side1;
	
	public AbstractParallelogram(double side1,double side2){
		this.side1=side1;
		this.side2=side2;
	}


Hier der gesamte Code,ich hoffs ich habs einigermassen gerafft.

Code:
// Parallelogramm.
interface Parallelogram {
double side1 (); // Seiten.
double side2 ();
double angle (); // Ein Winkel (Bogenmaß).
double diag1 (); // Diagonalen.
double diag2 ();
double area (); // Fläche.
double circumference (); // Umfang.
}
// Rechteck.
interface Rectangle extends Parallelogram {
double diag (); // Diagonale (selber Wert wie diag1() und diag2()).
}
// Rhombus/Raute.
interface Rhombus extends Parallelogram {
double side (); // Seite (selber Wert wie side1() und side2()).
}
// Quadrat.
interface Square extends Rectangle, Rhombus {
}

abstract class AbstractParallelogram implements Parallelogram{
	
	protected double side2,side1;
	
	public AbstractParallelogram(double side1,double side2){
		this.side1=side1;
		this.side2=side2;
	}	
	
	public double diag1(){
		return Math.sqrt(side1*side1+side2*side2+2*side1*side2*Math.cos(Math.PI/2));
	}
	
	public double diag2(){
		return Math.sqrt(side1*side1+side2*side2-2*side1*side2*Math.cos(Math.PI/2));
	}
	
	public double area() {return side1*side2*Math.sin(Math.PI/2);}
	
	public double circumference() {return 2*(side1+side2);}
}

abstract class AbstractRectangle extends AbstractParallelogram implements Rectangle{
	
	public AbstractRectangle(double side1, double side2) {
		super(side1, side2);
	}
	
	public  double angle(){return Math.PI/2;}
	
	public  double diag(){return Math.sqrt(side1*side1+side2*side2);}
	
	public  double diag1(){return diag();}
	
	public  double diag2(){return diag();}
	
	public  double area(){return side1*side2;}
}

abstract class AbstractRhombus extends AbstractParallelogram implements Rhombus{
	public AbstractRhombus(double side1, double side2) {
		super(side1, side2);
	}
	
	public double side(){return side1;}
	
	public double side1(){return side();}
	
	public double side2(){return side1();}
	
	public double diag1(){return side2()*Math.sqrt(2*1+Math.cos(Math.PI/2));}
	
	public double diag2(){return side2()*Math.sqrt(2*1-Math.cos(Math.PI/2));}
}

abstract class AbstractSquare extends AbstractRectangle implements Square{
	public AbstractSquare(double side1, double side2) {
		super(side1, side2);
	}
	
	public double side1(){return side1;}
	
	public double side2(){return side1();}
	
	public double diag(){return side()*Math.sqrt(2);}
	
	public double diag1(){return diag();}
	
	public double diag2(){return diag();}
}

class ParallelogramImpl extends AbstractParallelogram{

	public ParallelogramImpl(double side1, double side2,double winkel) {
		super(side1, side2);
	}

	public double angle() {return 0;}

	public double side1() {return 0;}

	public double side2() {return 0;}
	
}

class RhombusImpl extends AbstractRhombus{

	public RhombusImpl(double side1, double side2) {
		super(side1, side2);
	}

	public double side() {return 0;}

	public double angle() {return 0;}
	
}


class RectangleImpl extends AbstractRectangle {

	public RectangleImpl(double side1, double side2) {
		super(side1, side2);
	}

	public double side1() {return 0;}

	public double side2() {return 0;}
	
}


class SquareImpl extends AbstractSquare{

	public SquareImpl(double side1, double side2) {
		super(side1, side2);
	}

	public double side() {return 0;}
	
}
[/code]
 

hiti

Mitglied
Hallo,
vielleicht will man eine zuvor protected- Deklarierte Variable in einer der SubKlassen vor fremden Zugriff schützen, und macht sie dann private ?

Gruss, hiti
 
B

bygones

Gast
versteh leider kein wort was du willst ;-)

Hallo,
vielleicht will man eine zuvor protected- Deklarierte Variable in einer der SubKlassen vor fremden Zugriff schützen, und macht sie dann private ?
wenn du in deiner Unterklasse eine protected variable der Oberklasse private "ueberschreibst" wird diese ignoriert...

Java:
public class K extends V {
    private String s;

    public static void main(String[] args) {
        new K().foo(); // ist HUHU
        new V() {}.foo(); // ist HUHU
    }
}

abstract class V {
    protected String s;

    V() {
        s = "HUHU";
    }

    public void foo() {
        System.out.println(s);
    }
}
 

hiti

Mitglied
ja, das stimmt. Für die direkt beteiligten Objekte ist das sinnlos.
Aber für z.B. andere Objekte aus dem Packet änder sich ja der Zugriff auf die Variable.

V.s wäre aus dem Pakage noch sichtbar, da protected.
K.s nicht mehr.

Gruss, hiti
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M abstrakte klassen / Schnittstellen Java Basics - Anfänger-Themen 4
L Abstrakte Typen und Schnittstellen Java Basics - Anfänger-Themen 19
B Kommunikation mit Seriellen Schnittstellen + Integration einer lib Java Basics - Anfänger-Themen 1
Fragerjava Java Schnittstellen Java Basics - Anfänger-Themen 6
S Zufallszahl-Generatoren (Schnittstellen) Java Basics - Anfänger-Themen 14
N Generische Schnittstellen Java Basics - Anfänger-Themen 2
K Welchen Typ haben Variablen in Default-Methoden und in statischen Methoden in Schnittstellen? Java Basics - Anfänger-Themen 4
Helgon Interface Runnable Frage / Schnittstellen allgemein Java Basics - Anfänger-Themen 3
S ich begreife es einfach nicht -> zweck der Schnittstellen Java Basics - Anfänger-Themen 27
D Interfaces / Schnittstellen Java Basics - Anfänger-Themen 8
G Schnittstellen Programmierung Java Basics - Anfänger-Themen 5
G in Java mit Schnittstellen arbeiten Java Basics - Anfänger-Themen 5
G Nutzen von Schnittstellen Java Basics - Anfänger-Themen 14
E Schnittstellen und Objekte in komplizierter Form Java Basics - Anfänger-Themen 10
E Wozu dienen Schnittstellen? Java Basics - Anfänger-Themen 16
G schnittstellen Java Basics - Anfänger-Themen 4
Y Frage zu Schnittstellen Java Basics - Anfänger-Themen 17
C Schnittstellen ???? Java Basics - Anfänger-Themen 11
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
S abstrakte methoden in subclass? Java Basics - Anfänger-Themen 7
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
G Java Abstrakte Methoden Java Basics - Anfänger-Themen 2
T Abstrakte Klasse und Interfaces Java Basics - Anfänger-Themen 12
D Abstrakte Klasse, Konstruktorkette, Attribute setzen Java Basics - Anfänger-Themen 12
S Abstrakte Methode nutzen Java Basics - Anfänger-Themen 9
J abstrakte Methode in Klasse mit Rückgabetyp der abgeleiteten Klasse Java Basics - Anfänger-Themen 5
J Objekte und Abstrakte Klassen Java Basics - Anfänger-Themen 2
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
T Übungsaufgabe abstrakte Klasse Java Basics - Anfänger-Themen 21
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
M Erste Schritte Prüfungsbeispiel: Interface / abstrakte Klassen Java Basics - Anfänger-Themen 8
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
S Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
S Datentypen Abstrakte Datentypen Java Basics - Anfänger-Themen 0
kilopack15 Beziehung Interface - (abstrakte) Klasse -Unterklasse Java Basics - Anfänger-Themen 3
K Abstrakte Klasse: vererbte Klasse; instance of? Java Basics - Anfänger-Themen 26
A Abstrakte Datentypen - Methode delete Java Basics - Anfänger-Themen 6
N Vererbung Abstrakte Klasse stateful Java Basics - Anfänger-Themen 3
D Abstrakte Klassen Verständniss Frage Java Basics - Anfänger-Themen 4
D Methoden Abstrakte Methoden Java Basics - Anfänger-Themen 3
W Abstrakte Klasse mit Variable? Java Basics - Anfänger-Themen 2
D Interface Interfaces und abstrakte Klassen implementieren Java Basics - Anfänger-Themen 4
B Abstrakte Klassen Java Basics - Anfänger-Themen 7
C Abstrakte und virtuelle Methoden in Java Java Basics - Anfänger-Themen 4
E verdeckte abstrakte Methode sinnvoll? Java Basics - Anfänger-Themen 7
A Vererbung Abstrakte Klasse mit Methode die Objekte der Subklassen benutzt? Java Basics - Anfänger-Themen 7
W Abstrakte und konkrete Klasse Java Basics - Anfänger-Themen 4
S Abstrakte Klassen Java Basics - Anfänger-Themen 2
C Dynamische Referenz & abstrakte Klassen Java Basics - Anfänger-Themen 3
F Abstrakte Klasse doch zum "Teil" instanzieren? Java Basics - Anfänger-Themen 4
V Interface Interfaces und abstrakte Klassen Java Basics - Anfänger-Themen 3
H Abstrakte Basisklasse Verständnisproblem! Java Basics - Anfänger-Themen 8
G Abstrakte Klassen - theoretische Frage Java Basics - Anfänger-Themen 2
OnDemand Abstrakte Klassen Java Basics - Anfänger-Themen 4
T OOP Abstrakte Klassen und ihre Kinder: wie läuft das? Java Basics - Anfänger-Themen 3
M Statische Methoden in Interface/Abstrakte Klasse Java Basics - Anfänger-Themen 6
M Abstrakte Klassen Java Basics - Anfänger-Themen 2
J Interfaces Abstrakte Klassen Java Basics - Anfänger-Themen 15
M Interface und Abstrakte Klassen Java Basics - Anfänger-Themen 12
N Datentypen abstrakte Klasse wird instanziert Java Basics - Anfänger-Themen 3
D Methoden abstrakte Methoden und Rückgabewerte Java Basics - Anfänger-Themen 2
B Abstrakte Methode vs. Interface Java Basics - Anfänger-Themen 2
propra Interface - abstrakte Klasse Java Basics - Anfänger-Themen 18
N Abstrakte Klasse Java Basics - Anfänger-Themen 28
R Namenskonvention abstrakte Klassen Java Basics - Anfänger-Themen 6
C OOP Objektstruktur: abstrakte Klassen Java Basics - Anfänger-Themen 3
L Über abstrakte Klasse auf eine Klasse zugreifen? Java Basics - Anfänger-Themen 6
V Vererbung Abstrakte Methode Java Basics - Anfänger-Themen 3
T OOP abstrakte klassen - methoden Java Basics - Anfänger-Themen 8
M Abstrakte Klassen Java Basics - Anfänger-Themen 21
J Welchen Sinn haben abstrakte Methoden? Java Basics - Anfänger-Themen 4
D Wann genau abstrakte Klasse und wann ein Interface verwenden? Java Basics - Anfänger-Themen 4
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
StupidAttack Abstrakte Methoden in nicht-abstrakter Methode in abstrakter Klasse Java Basics - Anfänger-Themen 6
T Abstrakte Klasse Java Basics - Anfänger-Themen 3
S Abstrakte Klasse Java Basics - Anfänger-Themen 5
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
T OO, Konstruktor, abstrakte Methoden Java Basics - Anfänger-Themen 13
K Abstrakte Klasse vs. Interface Java Basics - Anfänger-Themen 21
T Abstrakte Klassen Java Basics - Anfänger-Themen 6
C abstrakte Klassen mögen mich nicht... Java Basics - Anfänger-Themen 2
I Abstrakte Klassen Java Basics - Anfänger-Themen 8
K Abstrakte Klasse bilden? Java Basics - Anfänger-Themen 11
S Abstrakte Klasse, festlegen, dass Methode verändert werden muss. Java Basics - Anfänger-Themen 4
D Zusammenfassung von Klassen (Vererbung? Abstrakte Klass? ...?) Java Basics - Anfänger-Themen 8
H Warum Java? | Abstrakte Klasse = Modul? Java Basics - Anfänger-Themen 20
G Abstrakte Klassen und Methoden Java Basics - Anfänger-Themen 3
I Abstrakte Klassen Java Basics - Anfänger-Themen 22
J abstrakte klasse und methode super Java Basics - Anfänger-Themen 2
H Eine Abstrakte Klasse muss. Java Basics - Anfänger-Themen 7
G Abstrakte Klasse "Point" Java Basics - Anfänger-Themen 2
G Abstrakte Klassen ? Java Basics - Anfänger-Themen 9
G Abstrakte Methode in gleicher Klasse aufrufen Java Basics - Anfänger-Themen 5
M abstrakte Klasse Java Basics - Anfänger-Themen 3
nadoria abstrakte Klassen Java Basics - Anfänger-Themen 6
F Abstrakte Klasse: Konstruktor vs init() Java Basics - Anfänger-Themen 13
M Unterscheid Abstrakte Klassen/Interface Klassen? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben