2017-03-15 3 views
8

In dem folgenden Problem,Java Class Anforderungen

1. Welche der folgenden Aussagen ist in Bezug auf Java-Klassen wahr?
a) Alle Klassen müssen 1 Elternteil haben, aber eine beliebige Anzahl von untergeordneten (abgeleiteten oder erweiterten) Klassen.
b) Alle Klassen müssen 1 Kind (abgeleitet oder erweitert) Klasse haben aber eine beliebige Anzahl von übergeordneten Klassen haben.
c) Alle Klassen müssen eine Elternklasse haben und möglicherweise eine einzelne Kindklasse (abgeleitet oder erweitert) haben. d) Alle Klassen können eine beliebige Anzahl (0 oder mehr) von übergeordneten Klassen und eine beliebige Anzahl von untergeordneten (abgeleiteten oder erweiterten) Klassen haben.
e) Alle Klassen können entweder 0 oder 1 Elternklasse und eine beliebige Anzahl von untergeordneten (abgeleiteten oder erweiterten) Klassen haben.

Ich glaubte, die Antwort wäre e). Ich dachte das, weil alle Klassen höchstens eine Elternklasse oder mindestens 0 haben können (die Objektklasse hat keine Elternklasse). Außerdem können Sie eine beliebige Anzahl von untergeordneten Elementen haben (unter der Annahme, dass ganze Zahlen größer oder gleich 0 sind). Die richtige Antwort war a):

Alle Klassen 1 Elternteil muss aber eine beliebige Anzahl von Kindern (abgeleitet oder erweitert) Klassen haben.

Bedeutet dies, dass Sie die Objektklasse nicht betrachten kann eine Klasse sein?

Hat die Object-Klasse eine Elternklasse?

Außerdem habe ich vor kurzem eine weitere Frage zu Java gestellt, auch aus dieser Reihe von Aufgaben (eigentlich eine optionale Test-Review, keine Hausaufgaben). Sorry für die zwei Posts, aber ich dachte nicht, dass es richtig etiqutte folgte, um die Fragen in einen Post zu kombinieren.

+0

Da in Java eine Basis Elternklasse werden subclassed nicht endgültig ist (* Objekt *). –

+1

@SpencerWieczorek Was ist mit der Objektklasse? Es hat keine Basiselternklasse. –

+2

Oh Junge, du musst den Professor fragen; 'final class B' kann keine" Anzahl von Kindern "haben, daher gibt es eine Ausnahme, um' e' zu ​​beantworten. –

Antwort

1

Technisch gesehen ist weder A noch E korrekt. Die Klasse Object ist insofern einzigartig, als sie keine Eltern hat; Jede andere Klasse muss genau einen Elternteil haben. Somit ist es weder wahr, dass jede Klasse ein Elternteil haben muss - Object nicht - noch ist es wahr, dass alle Klassen Zero-Eltern haben können - nur Object darf das tun.

Wenn wir jedoch die Frage auf benutzerdefinierte Klassen beschränken und den Sonderfall Object aus dem Bild lassen, ist Antwort A korrekt.

+1

Außer, wie in anderen Kommentaren darauf hingewiesen, gibt es letzte Klassen .... –

+0

@SocraticPhoenix so was ..wenn letzte Klasse existiert? Update: OK Ich habe es .. Bedenken für die letzte Klasse ist gültig pro Frage Kontext –

0

Die Frage scheint ein bisschen irreführend zu sein. (e) scheint dem Korrekten am nächsten zu liegen. Die folgenden Konzepte können besser in das Verständnis der Frage helfen:

  • Objektklasse die Oberklasse aller Java-Klassen ist.
  • Java unterstützt keine Mehrfachvererbung
  • In Java können mehrere Vererbung mithilfe von Schnittstellen erzielt werden.
  • Schnittstellen sind nicht Klassen
  • A-Klasse, die von einer beliebigen Anzahl von Java-Klassen jede Klasse