Java-Programmierung: Erstellen einer Unter

Wenn Sie ein objektorientiertes Programm in Java schreiben, beginnen Sie mit dem über die Daten zu denken. Sie schreiben über Konten. Also, was ist ein Konto? Sie schreiben Code Tastenklicks zu handhaben. Also, was ist ein Knopf? Sie schreiben ein Programm Abrechnung Kontrollen an Mitarbeiter zu senden. Was ist ein Mitarbeiter?

In diesem Beispiel ist ein Mitarbeiter jemanden mit einem Namen und einer Berufsbezeichnung. Sicher haben die Mitarbeiter andere Eigenschaften, aber jetzt zu den Grundlagen bleiben. Der Code in dieser Auflistung definiert, was es bedeutet, ein Mitarbeiter zu sein.

import static java.lang.System.out-public class Angestellter {private String name-private String-jobtitle public void setName (String nameIn) {name = nameIn-} public String getName () {return Namen-} public void setJobTitle (String jobTitleIn) {jobtitle = jobTitleIn-} public String getJobTitle () {jobTitle- zurückkehren} public void cutCheck (Doppel amountPaid) {out.printf ( "Bezahlen Sie auf der Größenordnung von% s", name) -out.printf ( "(% s) *** $ ", jobtitle) -out.printf ("% ,. 2f n ", amountPaid) -}}

In der Auflistung ein Mitarbeiter Klasse definiert. Sie können verwenden, was Sie hier definieren und die Definition erweitern neue, spezialisierte Klassen zu erstellen. Also in diesem nächsten Eintrag definieren Sie eine neue Klasse - ein Vollzeitangestellter Klasse.

public class FullTimeEmployee erstreckt Mitarbeiter {Private double weeklySalary-private Doppel benefitDeduction-public void setWeeklySalary (Doppel weeklySalaryIn) {weeklySalary = weeklySalaryIn-} public double getWeeklySalary () {return weeklySalary-} public void setBenefitDeduction (Doppel benefitDedIn) {benefitDeduction = benefitDedIn-} public double getBenefitDeduction () {return benefitDeduction-} public double findPaymentAmount () {return weeklySalary - benefitDeduction-}}

Ein Blick auf die Liste, können Sie, dass jede Instanz die sehen Vollzeitangestellter Klasse hat zwei Felder: weeklySalary und benefitDeduction. Aber sind diese die einzigen Felder, die jeweils Vollzeitangestellter Instanz hat? Nein, sind sie nicht.

Die erste Zeile besagt, dass die Vollzeitangestellter Klasse erweitert die bestehende Mitarbeiter Klasse. Dies bedeutet, dass zusätzlich zu einer mit weeklySalary und benefitDeduction, jeder Vollzeitangestellter Instanz hat auch zwei weitere Felder: Name und Berufsbezeichnung. Diese beiden Felder stammen aus der Definition der Mitarbeiter Klasse, die Sie in der ersten Liste finden.

In der zweiten Liste, ist das Zauberwort erweitert. Wenn eine Klasse eine bestehende Klasse erweitert, erbt der erweiterten Klasse automatisch Funktionalität, die in der vorhandenen Klasse definiert wird. Also, die Vollzeitangestellter Klasse inherits das Name und Berufsbezeichnung Felder.

Das Vollzeitangestellter Klasse erbt auch alle Methoden, die in der Deklaration Mitarbeiter Klasse - Name einsetzen, getName, setJobTitle, getJobTitle, und cutCheck. Das Vollzeitangestellter Klasse ist ein Unterklasse des Mitarbeiter Klasse.

Das heißt, die Mitarbeiter Klasse ist die Super des Vollzeitangestellter Klasse. Sie können auch im Hinblick auf die Blutsverwandten sprechen. Das Vollzeitangestellter Klasse ist die Kind des Mitarbeiter Klasse, und die Mitarbeiter Klasse ist die Elternteil des Vollzeitangestellter Klasse.

Es ist fast (aber nicht ganz), als ob die Vollzeitangestellter Klasse wurde durch den Code in dieser Auflistung definiert. Dieser Code ist fake, aber informativ.

import static java.lang.System.out-public class FullTimeEmployee {private String name-private String-jobtitle private Doppel weeklySalary-private Doppel benefitDeduction-public void setName (String nameIn) {name = nameIn-} public String getName () {return Namen-} public void setJobTitle (String jobTitleIn) {jobtitle = jobTitleIn-} public String getJobTitle () {return jobTitle-} public void setWeeklySalary (Doppel weeklySalaryIn) {weeklySalary = weeklySalaryIn-} public double getWeeklySalary () {return weeklySalary-} public Leere setBenefitDeduction (Doppel benefitDedIn) {benefitDeduction = benefitDedIn-} public double getBenefitDeduction () {return benefitDeduction-} public double findPaymentAmount () {return weeklySalary - benefitDeduction-} public void cutCheck (Doppel amountPaid) {out.printf ( "dem Pay um% s ", name) -out.printf (" (% s) *** $ ", jobtitle) -out.printf ("% ,. 2f n ", amountPaid) -}}

Warum ist die Auflistung dieser gefälschten Code? Nun, der Hauptunterschied zwischen dieser Liste und der Vererbungs Situation in den vorherigen Listings ist dies: Ein Kind Klasse nicht direkt auf die privaten Felder seiner Elternklasse verweisen kann. Um etwas mit dem privaten Bereich der Elternklasse hat das Kind Klasse der Elternklasse der Accessormethoden zu rufen.

Zurück in der zweiten Liste, ruft setName (# 147-Rufus # 148-) wäre legal, aber der Code name = # 148-Rufus # 148- wäre nicht. Wenn Sie alles, was Sie lesen in der letzten Liste glauben, würden Sie diesen Code denken in der Vollzeitangestellter Klasse tun können name = # 148-Rufus # 148-. Nun, es kann nicht.

Sie brauchen nicht die Employee.java Datei auf Ihrer Festplatte Code zu schreiben, der sich Mitarbeiter Klasse. Alles, was Sie brauchen, ist die Datei Employee.class.

Menü