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のインタフェースは出ませんが、インタフェース実装クラスのオブジェクトを作成することができます.
インタフェースのメソッドを書き換える必要があります
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); }