JAvaベース(抽象クラス)

1764 ワード

抽象メソッド:不完全なメソッドに属し、宣言が1つしか含まれておらず、メソッドボディがありません.以下は抽象メソッド宣言時に採用される構文です:abstract void x();抽象メソッドを含むクラスの1つを「抽象クラス」と呼びます.1つのクラスに1つ以上の抽象メソッドが含まれている場合、クラスはabstract(抽象)に指定する必要があります.そうでなければ、コンパイラはエラーメッセージを報告します.抽象クラスが不完全である場合、誰かがそのクラスのオブジェクトを生成しようとすると、コンパイラはどのような行動をとるのでしょうか.抽象クラスに属するオブジェクトを安全に作成できないため、コンパイラからエラー・プロンプトが表示されます.この方法により,コンパイラは抽象クラスの「純潔性」を保証し,誤用を心配する必要はない.抽象クラスから継承され、新しいタイプのオブジェクトを生成する場合は、ベースクラスのすべての抽象メソッドにメソッド定義を提供する必要があります.そうしないと(まったく選択できない)、派生クラスも抽象的になり、コンパイラはabstractキーワードでそのクラスの「抽象」の本質をマークするように強制します.abstractメソッドが含まれていない場合でも、クラスを「抽象クラス」と宣言できます.クラスが抽象的な方法を持つ必要がなく、そのクラスのすべてのインスタンスを禁止したい場合、この能力は非常に役立ちます.Instrumentクラスは抽象クラスに簡単に変換できます.一部のメソッドだけが抽象メソッドになります.クラスを抽象化した後、すべてのメソッドを同時に抽象化するように強制することはありません.次のように見えます.

package com.lgf.polymorphism;

/**
 * 1. abstract   private、static、final、native         
 * 
 * 2.            ,       
 * 
 * 3.        ,         
 * 
 * 4.          ,     abstarct     
 * @author lgf @data 2011-11-28
 */
public abstract class AbstractDemo {
	private int intValuePrivate;
	public String strValuePublic;
	protected double doubleValueProtected;
	public static int staticIntValue;
	
	public abstract void publicFunction();
	abstract void defaultFunction();
	protected abstract void protectedFunction();
	
	public static void staticNotAbstractFunction(){
		System.out.println("       ");
	}

//	public static abstract void publicStaticFunction();	     static     
//	private abstract void privateFunction();       private     
	
	public static void main(String[] args) {
//		new AbstractDemo();        
	}
}