1. 抽象クラスとは何ですか?
abstract によって変更されたメソッドは、抽象メソッドと呼ばれます。 class Modified by abstract 抽象クラスといいます。抽象クラスは具象クラスではないか、new キーワードを直接使用してコンストラクターを呼び出してこのクラスのオブジェクトを生成できるほど完全ではないため、抽象クラスをインスタンス化できません。 abstract を使用して、抽象クラスと抽象メソッドを定義できます。サンプル コードは次のとおりです:
abstract class 类名 { abstract int 方法名(int x,int y); }
抽象メソッドにはメソッド本体がありません。抽象クラスは抽象メソッドと通常のメソッドの両方を持つことができることに注意してください。抽象メソッドにはメソッド本体がない (つまり、メソッドの後に中括弧がない) ことに注意してください。この抽象クラスを継承するすべてのエンティティ サブクラスは、この抽象メソッドを実装する必要があります。
抽象クラスの特性を要約しましょう:
(1) 抽象クラスはインスタンス化できません;
(2) コンストラクターと静的メソッドは抽象化できません;
(3) 親クラスの抽象メソッドはサブクラスに実装されることがよくあります;
(4) 抽象クラスは、サブクラス オブジェクトを指すオブジェクト参照を持つことができます。
2. 抽象クラスの例
まず、完成する実際の例を見てみましょう:
1. 抽象クラス Employee を定義します。 ;
(a) 保護されたフィールド: 名前、性別、年齢などの基本属性。
(b) 賃金を徴収する操作を表す抽象メソッド関数 getsalary() を定義します。
(c) 通常の関数 whoami() の出力を定義します。私は名前
(d) (名前、性別) パラメーターを持つコンストラクター。
従業員から派生したマネージャー クラスのマネージャーを定義する;
(a) 従業員などの基本属性に加えて、役職レベルの gree プライベート属性もあります。
(b) マネージャーは 7,000 元の給与を受け取り、給与を印刷して出力します。
(c) 親クラスの whoami() を書き換え、親クラスの whoami() メソッドを呼び出して、次のように出力します。
従業員クラスから派生した会計クラス「Accounting」を定義します;
(a) 従業員などの基本属性に加えて、会計評価のプライベート属性もあります。
(b) 会計士は 3,000 元の給与を受け取り、給与を印刷して出力します。
(c) 親クラスの whoami() を書き換え、親クラスの whoami() メソッドを呼び出して、次のように出力します。
/** * 定义类员工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); } }
新しいマネージャー クラス Manager を作成し、Employee クラスを継承します。このとき、Eclipse は抽象メソッド getsalary をオーバーライドする必要があることを要求します。サンプル コードは次のとおりです。
/** * 经理类 */ 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("我是会计"); } }
php 中国語の Web サイト、多数の無料の Java 入門チュートリアル 、オンライン学習へようこそ!
以上がJavaの抽象クラスとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。