1. Was ist eine abstrakte Klasse?
Durch Zusammenfassung modifizierte Methoden werden als abstrakte Methoden bezeichnet abstract Es wird eine abstrakte Klasse genannt. Eine abstrakte Klasse kann nicht instanziiert werden, da es sich nicht um eine konkrete Klasse handelt oder weil eine solche Klasse nicht vollständig genug ist, um direkt mit dem Schlüsselwort new ihren Konstruktor aufzurufen und ein Objekt dieser Klasse zu generieren. Wir können abstract verwenden, um eine abstrakte Klasse und eine abstrakte Methode zu definieren. Der Beispielcode lautet wie folgt:abstract class 类名 { abstract int 方法名(int x,int y); }
2. Beispiele für abstrakte Klassen
Schauen wir uns zunächst die tatsächlichen Beispiele an, die vervollständigt werden sollen:
1 Definieren Sie die abstrakte Klasse Employee; (a) Geschützte Felder: Grundattribute wie Name, Geschlecht, Alter usw. (b) Definieren Sie die abstrakte Methodenfunktion getsalary(), um den Vorgang des Einziehens von Löhnen darzustellen. (c) Definieren Sie die Ausgabe der gewöhnlichen Funktion whoami(): I am + name (d) Ein Konstruktor mit (Name, Geschlecht)-Parametern. Definieren Sie einen von Mitarbeitern abgeleiteten Manager der Klasse (a) Zusätzlich zu grundlegenden Attributen wie Mitarbeitern gibt es auch private Attribute auf Post-Ebene. (b) Der Manager erhält ein Gehalt von 7.000 Yuan, druckt das Gehalt aus und gibt es aus. (c) Schreiben Sie whoami() der übergeordneten Klasse neu, rufen Sie die whoami()-Methode der übergeordneten Klasse auf und geben Sie dann Folgendes aus: Ich bin ein Manager. Definieren Sie eine Buchhaltungsklasse Buchhaltung, abgeleitet von der Mitarbeiterklasse (a) Zusätzlich zu den Grundattributen wie Mitarbeitern gibt es auch ein privates Buchhaltungsbewertungsattribut. (b) Der Buchhalter erhält ein Gehalt von 3.000 Yuan, druckt das Gehalt aus und gibt es aus. (c) Schreiben Sie whoami() der übergeordneten Klasse neu, rufen Sie die whoami()-Methode der übergeordneten Klasse auf und geben Sie dann Folgendes aus: Ich bin Buchhalter./** * 定义类员工Employee, */ public abstract class Employee { protected String name; protected boolean gender; protected int age; public Employee(String name,boolean gender){ this.name=name; this.gender=gender; } /** * 表示领工资的操作 */ public abstract void getsalary(); public void whoami(){ System.out.println("我是"+name); } }
/** * 经理类 */ public class Manager extends Employee{ private String gree; public Manager(String name,boolean gender){ super(name,gender); } //重写父类的抽象方法 public void getsalary(){ System.out.println("经理领7000元工资"); } public void whoami(){ super.whoami();//显示调用父类的方法 System.out.println("我是经理"); } }
/** * 会计 */ public class Accounting extends Employee { private int rating; public Accounting(String name, boolean gender) { super(name, gender); } @Override public void getsalary() { System.out.println("会计发3000工资"); } public void whoami() { super.whoami();// 显示调用父类的方法 System.out.println("我是会计"); } }
Java-Einführungs-Tutorials
, willkommen zum Online-Lernen!Das obige ist der detaillierte Inhalt vonWas ist eine abstrakte Klasse in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!