クラス、抽象類とインターフェース


インターフェースのキーワード:インターフェース
インタフェースの役割:データタイプとして、親タイプとしてサブクラスに拡張する。
インターフェースの文法フォーマットを定義します。 インターフェース インターフェース名 extens インターフェース名、{
//定数のみ定義できます。
Public  static final データの種類  定数名 = 値;
//抽象的な方法しか定義できません。
public 戻り値データタイプ メソッド名(パラメータタイプ パラメータ名
)
注意:インターフェースのデフォルトのアクセス修飾子はpublicで、インターフェースはオブジェクトを実例化できません。
クラス実現インターフェースを定義するシンタックスフォーマットは、
public クラス クラス名 implements インターフェース名、… {
 
//クラスでは、インターフェース内のすべての抽象的な方法を実現しなければなりません。
)
普通クラスクラスのクラスとインターフェースの違い:
 
1.lassのアクセス修飾子は、public、protected、デフォルト、prvateとすることができます。
インターフェースはデフォルトのアクセス修飾子のみです。public;
2.クラスは属性、普通の方法、構造方法を定義できますが、インターフェースでは定数と抽象的な方法しか定義できません。
3.classではオブジェクトを実装し、メソッドを呼び出すことができますが、インターフェースはオブジェクトを実装できません。
4.クラスはもう一つのクラスを引き継ぐことができますが、子類は一つの父親類だけを引き継ぎます。一つのクラスはimplementsによって複数のインターフェースを実現できます。複数のインターフェース名の間はカンマで区切られます。一つのインターフェースは複数のインターフェースを継承できます。継承されるインターフェースの間もコンマで区切られます。一つ クラスはもう一つのクラスを引き継いで複数のインターフェースを実現できます。
5.子類の父類を継承する方法は実現しても実現しなくてもいいですが、classがinterfaceを継承する方法は必ず実現しなければなりません。また、インターフェースを実現する方法では、方法の視認性を縮小できません。
 
 
 
抽象類:抽象類とは、クラスとインターフェースの間の特殊な種類のことです。
抽象的なキーワードを定義します。 クラス
抽象的なタイプを定義するフォーマット:public abstract クラス 抽象類名 extens クラス名または抽象類 implements インターフェース名、… {
//とクラスのように属性と方法を定義します。
//とインターフェースのように定数と抽象的な方法を定義しますが、抽象的な方法のフォーマットは違います。
public abstract 戻り値の種類 メソッド名(パラメータタイプ パラメータ名
 
)
コードの例:
クラス実現インターフェースを定義します。
 
/**
 *     Person  
 * 
 */
public interface Person {
  //          public static final ,   public static final
 public static final int age = 100;
	//          public abstract ,   public abstract
	public abstract void eat();
   Public abstract void study();
}
/**
 *    ,  Person  
 */
public class Student implements Person{
   /**
	 *             
	 *          ,          
	 */
	public void study(){
		System.out.println("       !!");
	}

	public void eat(){
		System.out.println("       !!");
	}