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);
}