Vererbung - private

strohhaar

Mitglied
Hallo Leute,

ich gehe gerade ein paar Übungen durch zur Vorbereitung. Bei einer Aufgabe frage ich mich, ob die zu lösen ist (Fehler?). Bei Punkt 2 (Konstruktoren) komme ich nicht weiter. Eine Klasse erbt doch nur "Sichtbares". Müssten matrikel und name nicht z.b. eher protected sein?

klick


Gruß
 

AmunRa

Gesperrter Benutzer
ich geb dir mal einen kleinen Tip
Java:
public class A{
   private String a
   public A(String a;) {
     this.a=a;
  }

}

public class B{
   A a;
 public B(){
   a=new A("HALLO");
  }

}

edit:
hab grad ne Änderung gemacht, da ich die Aufgabe nochmal gelesen habe
 

Tain

Mitglied
Ob die Variablen selbst private sind ist ja egal, da man ja auf die getter zugreift und diese public sind.
Im allgemeinen werden sogar Variablen immer private gesetzt und eben nur durch getter und setter zugreifbar gemacht.
Und was dass hier mit Vererbung zutun hat weiss ich nicht. Du meinst wohl dass erstellen von Instanzen
 
Zuletzt bearbeitet:

strohhaar

Mitglied
Als ich Punkt 1 durchgelesen hatte (Klasse Klausur definiert sich...), war ich der Meinung, dass Klausur von StudentData erbt. Das war auch Thema in der Vorlesung.
Geht es über die Vererbung oder nicht?
 
Zuletzt bearbeitet:

AmunRa

Gesperrter Benutzer
selbst wenn klausur von Student erbt was laut meiner Auffassung nicht richtig ist.

könntest du noch immer mit dem Super konstruktor die Variablen setzen.
 

strohhaar

Mitglied
Java:
Klausur(String name, String matrikel, float note){
		super(matrikel, name);
		this.note=note;
		super.name = name;
		super.matrikel = matrikel;
	}

so? Wie schaut dann der Copy-Konstruktor aus? Den bekomme ich nicht hin.
 

AmunRa

Gesperrter Benutzer
Ich schreibs leiber noch einmal hin.

Klausur soll nicht von StudentData erben.


ein Copy-Construktor sieht immer so aus

Java:
public class A{
   public A(A other){
      ...
   }

}
 
S

SieheDa

Gast
Java:
	public interface Compare {
		public static final float AVG = 2.3F;
		public boolean istBesser (float note) throws Exception;
	}
	
	public class StudentData {
		private String name;
		private String matrikel;
		
		public StudentData(String name, String matrikel) {
			this.name = name;
			this.matrikel = matrikel;
		}
		public String getName() {
			return name;
		}
		public String getMatrikel() {
			return matrikel;
		}
		
	}
	
	public class Klausur extends StudentData implements Compare{

		private float note;

		public Klausur(Klausur klausur) {
			this(klausur.getName(),klausur.getMatrikel(), klausur.note);
		}
		
		public Klausur(String name, String matrikel, float note) {
			super(name, matrikel);
			this.note = note;
		}

		public boolean istBesser(float note) throws Exception {
			return false;
		}
		
		public float getNote() {
			return note;
		}
		
	}
 

Neue Themen


Oben