Javaを実装するインタフェースクラスのオブジェクトの作成
1156 ワード
public interface Jiekou { public void s(); }//インタフェースを実装するclass public class Jiekouimple implements jiekou{public void s();public class Test( public static void main(String[] args) { Jiekou jiekou = new Jiekouimple (); } )
インタフェースはインスタンス化できません.すなわち、newのインタフェースは出ませんが、インタフェース実装クラスのオブジェクトを作成することができます.
インタフェースのメソッドを書き換える必要があります
インタフェースの使用方法:
1.インタフェースで定数を定義できます.変数を定義できません.インタフェースで属性を定義すると、public static finalで自動的に修飾され、インタフェースの属性はグローバル静的定数であり、インタフェースの定数は定義時に初期値を指定する必要があります.
2.インタフェース内のすべてのメソッドは抽象メソッドであり、インタフェース内のメソッドは自動的にpublic abstractで修飾されます.すなわち、インタフェースにはグローバル抽象メソッドしかありません.
次のようになります.
逆コンパイル後:
package com.slef.dao;
import com.slef.model.User;
public abstract interface UserDao{public static final String var="定数1";public static final Integer t=Integer.valueOf(23);
public abstract User getById(Long paramLong); }
インタフェースはインスタンス化できません.すなわち、newのインタフェースは出ませんが、インタフェース実装クラスのオブジェクトを作成することができます.
インタフェースのメソッドを書き換える必要があります
Jiekou jiekou = new Jiekou() {
@Override
public void s() {
}
};
インタフェースの使用方法:
1.インタフェースで定数を定義できます.変数を定義できません.インタフェースで属性を定義すると、public static finalで自動的に修飾され、インタフェースの属性はグローバル静的定数であり、インタフェースの定数は定義時に初期値を指定する必要があります.
2.インタフェース内のすべてのメソッドは抽象メソッドであり、インタフェース内のメソッドは自動的にpublic abstractで修飾されます.すなわち、インタフェースにはグローバル抽象メソッドしかありません.
次のようになります.
public interface UserDao {
String var = " 1";
Integer t = 23;
User getById(Long id);
}
逆コンパイル後:
package com.slef.dao;
import com.slef.model.User;
public abstract interface UserDao{public static final String var="定数1";public static final Integer t=Integer.valueOf(23);
public abstract User getById(Long paramLong); }