Einführung in die Erweiterung von Klassendeklarationen für Exemplare in Java im Rahmen der Lehre des Programmierens mit der Programmiersprache Java. (), Lektion, Seite 721603
https://www.purl.org/stefan_ram/pub/java_exemplardeklarationserweiterung_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Erweiterung von Klassen

Erweiterung von »java.lang.Object«

Durch die Erweiterung einer Klasse werden – vereinfacht gesagt – die Einträge der erweiterten Klasse übernommen. (Dies wird auch als „Vererbung“ bezeichnet.)

Die folgende Klasse erweitert »java.lang.Object« stillschweigend. So kann die Methode »toString()« für das Objekt »new Main()« aufgerufen werden, obwohl sich in der Deklaration der Klasse »Main« keine Deklaration einer Methode »toString« befindet.

Beispiel

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( new Main().toString() ); }}
transcript
Main@1db9742

Die folgende Klasse erweitert »java.lang.Object« ausdrücklich.

Beispiel

Main.java
public final class Main extends java.lang.Object
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( new Main().toString() ); }}
transcript
Main@1db9742

Jede Klasse in Java erweitert »java.lang.Object«, auch, wenn »extends java.lang.Object« nicht in ihrer Deklaration steht.

Man kann sich vorstellen, daß in dem obigen Programme zu den von der Klasse »java.lang.Object« übernommenen Methoden noch die Methode »main« hinzugefügt wird. Insofern ist es berechtigt von einer Erweiterung  zu sprechen.

»extends« ist ein Schlüsselwort, es bedeutet dasselbe wie “inherits from ”.

Die Klasse, welche erweitert wird, wird auch als Basisklasse  bezeichnet. Die Basisklasse einer Klasse ist ein direkter Obertyp dieser Klasse. Oben ist also »java.lang.Object« Basisklasse der Klasse »Main«.

Erweiterung von Klassen

Eine Klasse darf höchstens eine  andere Klasse erweitern.

Falls diese andere Klasse allerdings ihrerseits schon eine Klasse erweitert, so wird dadurch auch diese Klasse indirekt erweitert.

So erweitert jede Klasse letztendlich auch dann »java.lang.Object«, wenn hinter »extends« eine andere Klasse als »java.lang.Object« angegeben ist.

Eine Klasse, die direkt hinter »extends« angegeben ist, wird auch direkte Oberklasse  genannt. Außerdem gilt jede Klasse auch als direkte Oberklasse von sich selbst.

Eine Klasse, die direkte Oberklasse einer anderen Klasse ist oder direkte Oberklasse einer direkten Oberklasse der anderen Klasse oder direkte Oberklasse einer direkten Oberklasse einer direkten Oberklasse der anderen anderen Klasse oder so weiter, wird einfach nur als Oberklasse  der anderen Klasse bezeichnet.

Jede Klasse ist Oberklasse ihrer selbst und »java.lang.Object« ist Oberklasse jeder Klasse.

Vor der Behandlung des nächsten Beispiels zeigen wir ein Beispiel für eine Verwendung der Klasse »java.awt.geom.Point2D.Double«.

Die Objekte der Klasse »java.awt.geom.Point2D.Double« enthalten jeweils zwei Variablen namens »x« und »y«, welche bezeichnet werden können, indem ihnen der Ausdrück für ihr Objekt als Kontext vorangestellt wird. Solche Variablen eines Objektes nennt man auch Felder dieses Objektes.

(Das Wort „Kontext“ wird im voranstehenden Satz so verwendet, wie vom Standard-Java -Compiler, es bezieht sich nicht auch die Kontexte einer Anwendung oder Aktivität, die speziell in der Android-Programmierung verwendet werden.)

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.awt.geom.Point2D.Double coordinate
= new java.awt.geom.Point2D.Double();
coordinate.x = 3;
coordinate.y = 4;
java.lang.System.out.println( coordinate.x );
java.lang.System.out.println( coordinate.getX() );
java.lang.System.out.println( coordinate ); }}
transcript
3.0
3.0
Point2D.Double[3.0, 4.0]

Das folgende Beispiel zeigt wie die Klasse »java.awt.geom.Point2D.Double« praktisch in die Klasse »Main« kopiert wird. Nun können die Einträge der Klasse »java.awt.geom.Point2D.Double« so benutzt werden als seien sie Einträge der Klasse »Main«.

Main.java
public final class Main extends java.awt.geom.Point2D.Double
{ public static void main( final java.lang.String[] args )
{ final Main main = new Main();
main.x = 3;
main.y = 4;
java.lang.System.out.println( main.x );
java.lang.System.out.println( main.getX() );
java.lang.System.out.println( main ); }}
transcript
3.0
3.0
Point2D.Double[3.0, 4.0]

Oben hat das Wort »main« zwei Bedeutungen: Einmal ist es der Name einer Methode und dann auch der Name einer lokalen Variablen. (Dies ist in Java  zulässig.)

Durch »extends java.awt.geom.Point2D.Double« wird die Klasse »Main« praktisch zu einer Art von Kopie  der Klasse »java.awt.geom.Point2D.Double«.

final-Klassen

Eine Klasse, die in ihrer Dokumentation mit »final« gekennzeichnet ist, darf nicht erweitert werden.

Main.java
public final class Main extends java.lang.String
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( new Main().toString() ); }}
transcript
Main.java:1: error: cannot inherit from final String
public final class Main extends java.lang.String
^
1 error

Der mysteriöse Aufruf

Manchmal findet man einen Aufruf einer Methode in der Basisklasse, der als mysteriös erscheint, da nicht klar ist, wo die aufgerufene Methode deklariert wurde, wie beispielsweise den Aufruf »getX()« in dem folgenden Programm.

Main.java

public final class Main extends java.awt.geom.Point2D.Double
{

public void method()
{ java.lang.System.out.println( getX() ); }

public static void main( final java.lang.String[] args )
{ final Main main = new Main();
main.x = 3;
main.y = 4;
main.method(); }}

Protokoll
3.0

»getX()« bedeutet dasselbe wie »this.getX()«, die Methode »getX()« wurde von der Oberklasse geerbt.

Statische Methoden einer Oberklasse

Statische Methoden einer Oberklasse können ohne Qualifikation aufgerufen werden. Im Hauptprogramm des folgenden Beispiels kann deswegen »run()« statt »Other.run()« geschrieben werden.

Main.java

class Other
{ public static void run()
{ java.lang.System.out.println( "run" ); }}

public final class Main extends Other
{ public static void main( final java.lang.String[] args )
{ run(); }}

Protokoll
run

Indirekte Oberklassen

Man kann auch eine Klasse erweitern, die ihrerseits eine andere Klasse erweitert. Die indirekt-geerbten Methoden können dabei wie direkt-geerbte Methoden verwendet werden.

»protected«

Auf einen Eintrag einer Klasse, der mit »protected« gekennzeichnet ist, darf nur aus demselben Paket oder in der Deklaration von Unterklassen zugegriffen werden.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram721603 stefan_ram:721603 source, source code,sourcecode, Programmier sprache java, Java Programm Java Programmiersprache Java Sprache Java Programmierung Programmieren in Java, Die Programmiersprache Java Javapgrammierung, Java-Programmierung, Java2, Java1.2, Java1.3, Java1.4, Java1.5, Java 2, Java 1.2, Java 1.3, Java 1.4, Java 1.5, Java 1.6, Java 1.7, Java 1.8, Java 8, Java 1.9, Java 9, Java 1.10, Java 10, Tiger, Dolphin, objektorientierte Programmierung, Java sun, , Softwareentwicklung, Software-Entwicklung, Software Entwicklung, Softwareprogrammierung, Software-Programmierung, Software Programmierung, Softwareherstellung, Software-Herstellung, Software Herstellung, Softwareerstellung, Software-Erstellung, Software Erstellung, Softwareengineering, Software-Engineering, Software Engineering, Softwareenginering, Software-Enginering, Software Enginering, Softwaremethodik, Software-Methodik, Software Methodik, Programmiermethodik, Programmier-Methodik, Programmier Methodik, Softwaredidaktik, Software-Didaktik, Software Didaktik, Methodik des Programmierens, Didaktik des Programmierens, Fachdidaktik des Programmierens, Fach-Didaktik des Programmierens, Programmieren, Programmierung, Computer Science, Informatik, Informatik, Informationspädagogik, Informationspaedagogik, Programmierer, programmieren, Quellcode, Quelltext, Quelle, Quellen, Informatiker, Fachinformatiker, Entwickler, mit Stil, mit Stiel, mit Still, , Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz, lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung, Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training, WBT, Net Based Training, NBT, computer based training, CBT, virtual learning environment, virtual university, für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie, Onlineacademie, Onlineakademie, Wissen, Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat, Referate, Hausaufgabe, Hausaufgaben, Tip, Tipp. Tipps und Tricks, Tips und Tricks, Methode, Methoden, Methodik, Funktion, Funktionsweise, Aufbau, Prinzip, Grundlage, Grundlagen, Internetschulung, Unterlage, Unterlagen, Struktur, Frage, Fragen, Antwort, Antworten, Schulunterricht, zum erlernen, was ist das?, wie?, lerne, Onlineausbildung, Onlinelehrgang, Onlinekurs, Onlinebuch, Webbuch, Academy, Fachhochschule, FH, TFH, Hochschule, Universität, Universitaet, Uni, Schule, Berufsschule, Gymnasium, Erste Schritte mit, Dozent, Dozenten, Zusammenfassung, Übersicht, Term, Fachwort, Fachbegriff, Fachbegriffe, Grundbegriff, Grundbegriffe, Lektion, Lektionen, Bedienungsanleitung, Bedienungsanleitungen, Spezialist, Spezialisten, Coaching, Coach, Fachbuch, technologie, Unterschied zwischen, Unterschiede zwischen, lehren, unterrichten, für das Studium, für Studenten, für Studentinnen, für Studierende, für Schüler, für Schülerinnen, Wie kann ich, Wie kann man, Hilfe, selber, erstellen, Erstellung, Beginner, Online-Seminar, Online-Kurs, Online-Schulung, ich, gebrauchsanweisung, gebrauchsanleitung, Bedienungsanweisung, Einweisung, Kurzinfo, Internet-Kurs, Internet-Kurse, Online-Training, Intensiv, Intensivkurs, Vortragsreihe, Präsentation, Grundzüge, Mitschrift, Mitschriften, Verständnis, verstehen, anwenden, Hintergrundwissen, Hintergrund, Hintergründe, content, Funktionsprinzip, Schritt für Schritt; E-Learning; elearning; online learning; Fernlehre, Fernlehrgang, Fernlehrgänge, Referent, Referenten, Fernkurs, Fernkurse, Fernstudium, Fernschule, Fernuniversität, Fernlehrer, Denken, Qualifizierungsmaßnahme, Qualifizierung, Qualifizierungen, Volkshochschulkurs, Volkshochschulkurse, Internet-Learning-Plattform, Online-Learning-Plattform, E-Learning-Plattform, Internetlearning-Plattform, Onlinelearning-Plattform, Elearning-Plattform, jetzt, Kochbuch, einfach erklärt, Kenntnis, Kenntniss, Kenntnisse, deutsche Hilfe, lernen und verstehen; blended learning; courseware, Profi, Profis, professionell, professionelle, professionelles, profesionell, profesionelle, profesionelles, professionel, gekonnt, für Könner, Grundkurs, Leistungskurs, Aufbaukurs, Lehrtext, Lehrtexte, Fachtext, Fachtexte, Ausarbeitung, distance learning, Online Seminar, distance education, Online Tutorium, Online Tutorien, technology-based learning, Computer based learning, CBL, Internet Based learning, IBL, Web based learning, WBL, online-learning, OL, online-training, OT, CAI, Computer Assisted Instruction, CUU, Computerunterstützter Unterricht, Computer-unterstützter Unterricht, Know how, Grundkenntnis, Grundkenntnisse, Kompetenz, Schulungsunterlagen, Insiderwissen, Rat, Lehrerinnen und Lehrer, ABC, Überblick, Arbeitsblatt, Sekundarstufe, Oberstufe, Material, Materialien, Unterrichtsentwurf, Unterrichtsentwürfe, Lerntip, Lerntips, Lerntipp, Lerntipps, ebook, schnell lernen, Lerner, Lernender, Lernende Erwachsenenbildung, Frage und Antwort, Selbststudium, Selbstudium, Umschulung, , kostenlos, kostenlose, kostenloses, kosten los, kosten lose, kosten loses, gratis, free, frei, freie, freies, privat, private, privates, homepage, home-page, home page, website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite, Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel, online, on-line, on line, download downloaden, down load, or, deutsch, deutsche, deutsches, deutscher, Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges, german, germany, and, uebersicht, Uerbersicht, uebersichten, Uebersichten, Übersicht, übersicht, Übersichten, übersichten, Uebersicht, uebersicht, Uebersichten, uebersichten, Info, Infos zu, Information über, ueber, Informationen über, Auskunft, Auskünfte, Auskuenfte, Dienst, PbclevtugFgrsnaEnz, Angebot, Angebote, Anbieter, server, für, fuer, in, an, keyword, keywords, key word, keywords, internet, internets, net, network, net work, networks, net works, web, www, world wide web, Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar, computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon, computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 was ist ein, was ist das, was sind, definiere, definition, define, Inhalt, html, xhtml, free im netz, PDF Text, digital, digitale, binär, binäre, elektronisch, elektronische, fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines, Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen; , Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd721603, slrprddef721603, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/java_exemplardeklarationserweiterung_de