Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: FAQ - Java ::  super     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
stef
Mitglied

Benutzerprofil
Anmeldungsdatum: 06.11.2001
Beiträge: 405
Beitrag stef Mitglied 14:04:00 01.04.2002   Titel:   super            Zitieren

hallo

in einer abgeleiteten Klasse möchte ich einen Wert aus der Vaterklasse auslesen. wie kann ich dies machen? mit super klappt das bei mir nicht so ganz.

C++:
1
2
3
4
5
6
7
8
9
class Time
{
 
  int Hour,Minute,Sec;
}
class Weltzeit extends Time
int temp=-1;
 
//und jetzt möchte ich Hour Minute und Sec aus der Klasse Time Anzeigen
Werbeunterbrechung
TriPhoenix
Mitglied

Benutzerprofil
Anmeldungsdatum: 05.08.2001
Beiträge: 1530
Beitrag TriPhoenix Mitglied 14:23:00 01.04.2002   Titel:              Zitieren

mach die variablen protected, dann stehen sie in der subklasse als ganz normale variablen zur verfügung:

[java]
class Time
{
protected int Hour,Minute,Sec;
}

class Weltzeit extends Time
{
public void irgendwas()
{
Hour = 12;
}
}[/code]

alternativb baust du in die Klasse Time get/ste-methoden, bzw. wenn die kalsse ausm java-pack ist, hat die garantiert welche, so dass du einfach getHour/steHour etc. aufrufen kannst
stef
Mitglied

Benutzerprofil
Anmeldungsdatum: 06.11.2001
Beiträge: 405
Beitrag stef Mitglied 14:30:00 01.04.2002   Titel:              Zitieren

ja das schon aber wie kann ich die Werte aus der Vaterklasse auslesen.
denn in der subklasse möchte ich mit den Werten der Vaterklasse arbeiten

[ Dieser Beitrag wurde am 01.04.2002 um 14:30 Uhr von stef editiert. ]
Twiggy Ramirez
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.03.2002
Beiträge: 101
Beitrag Twiggy Ramirez Mitglied 15:44:00 01.04.2002   Titel:              Zitieren

mit super, wie du schon sagtest. Aber mal ne andere Frage: Wozu schreibst Du eine eigene Zeit-Klasse, sowas gibs doch schon?

_________________
C++? Is that a kind of toilet paper?
stef
Mitglied

Benutzerprofil
Anmeldungsdatum: 06.11.2001
Beiträge: 405
Beitrag stef Mitglied 19:04:00 01.04.2002   Titel:              Zitieren

nein das nur ein probebeispiel. aber das mit super klappt bei mir eben nicht so ganz wenn ich mit super.Hour die stunden aus der Vaterklasse auslesen möchte ist der Wert immer 0.
TriPhoenix
Mitglied

Benutzerprofil
Anmeldungsdatum: 05.08.2001
Beiträge: 1530
Beitrag TriPhoenix Mitglied 00:13:00 02.04.2002   Titel:              Zitieren

Du arbeitest in meinem Beispiel automatisch mit den Werten dert vaterklasse...es sie denn du überschreibst die Variablen, was diene Frage abe rnihct vermuten lässt. der Witz der Vererbung ist ja gerade, dass wenn B extends A, dann hat B alle Eigenscvhaften von A, also auch dessen Variablen
stef
Mitglied

Benutzerprofil
Anmeldungsdatum: 06.11.2001
Beiträge: 405
Beitrag stef Mitglied 23:25:00 02.04.2002   Titel:              Zitieren

das mit dem Vererben ist mir schon klar. ich bin mir nur nicht sicher ob auch die Werte die in den Variablen sind auch übergeben werden.
CengizS
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.05.2001
Beiträge: 3502
Beitrag CengizS Mitglied 08:45:00 03.04.2002   Titel:              Zitieren

Nein das werden sie nicht - es sei denn es handelt sich um solche die static sind. Jedes Objekt B welches in seiner Klassendefinition von A abgeleitet worden ist besitzt zwar die öffentlichen Eigenschaften von A jedoch hat ein Objekt vom Typ B stets andere "Inhalte" wie ein Objekt A. Daraus ergibt sich:

B ist ähnlich A ABER nicht B ist gleich A

Als Beispiel:

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class A {
     public static int staticMember_1 = 12;
     public static int staticMember_2 = 25;
     public int member_1 = 123;
 
     public int getMember1() {
          return member_1;
     }
}
 
public class B extends A {
     public B() {
          System.out.println("member_1 = " + getMember1());
     }
     public static void main (String args[]) {
          B theB = new B();
          System.out.println("staticMember_1 = " + staticMember_1);
          System.out.println("staticMember_2 = " + staticMember_2);
     }
}

_________________
Viele Grüße, Cengiz Şahin
stef
Mitglied

Benutzerprofil
Anmeldungsdatum: 06.11.2001
Beiträge: 405
Beitrag stef Mitglied 21:50:00 03.04.2002   Titel:              Zitieren

jetzt ist mir alles klar. mein fehler war das ich die Variablen nicht als static definiert habe.
danke
mfc stefan
c++.de :: FAQ - Java ::  super   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.