1.抽象方法:默认是public abstract的方法
2.JDK1,8开始 语序有可以实现的方法,但是这个方法只能是由default修饰的.
3.可以实现有一个静态方法.
3.成员变量默认是public static final 修饰的 4.接口不能被实例化. 5.类和接口之间采用implements 来实现多个接口 6.子类重写抽象方法,必须加上public. 7.接口中不能有静态代码块和构造方法. 8.如果你不想实现接口的方法,那么就把这个类定义为抽象类,但是如果这个类 被其他类继承 那么必须重写. 9.一个类 可以实现多个接口.使用implements 用逗号隔开 1.使用interface 来修饰接口interface B{//这是一个接口
}
2.接口当中的成员方法,不能有具体的实现
1.抽象方法:默认是public abstract的方法
2.JDK1,8开始 接口有可以实例的方法,但是这个方法只能是由default修饰的.
3.可以实现有一个静态方法.
interface B {//这是一个接口
static int add(int val1, int val2) {//可以有一个静态方法
return val1 + val2;
}
void sun();
default int pow(int val, int n) {//JDK1,8开始 接口有可以实例的方法,但是这个方法只能是由default修饰的.
if(n == 0){
return 1;
}
if (n == 1) {
return val;
}
return pow(val, n - 1) * val;
}
}
3.成员变量默认是public static final 修饰的
interface B {//这是一个接口
int a = 0;//虽然我没写成 "public static final int a = 0;" 但成员变量默认是public static final 修饰的 .即使没写 编译器也会默认加上.
}
4.接口不能被实例化.
public class Main {//这个类继承了A类
public static void main(String[] args) {
B b = new B();//这是错误的 接口不能被实例化
}
}
interface B {//这是一个接口
}
5.类和接口之间采用implements 来实现多个接口
interface A {//这是一个接口
}
interface B {//这是一个接口
}
class C implements A,B{//这个类 实现了两个接口
}
6.子类重写抽象方法,必须加上public.
interface A {//这是一个接口
void eag();//这是抽象方法
}
interface B {//这是一个接口
}
class C implements A, B {//这个类 实现了两个接口
public void eag(){ // 6.子类重写抽象方法,必须加上public.
System.out.println("吃饭");
}
}
7.接口中不能有静态代码块和构造方法.
interface B {//这是一个接口
static {//这是错误的,接口中 不能有静态代码块
}
B() {//这是错误的,接口中不能有构造方法
}
}
8.如果你不想实现接口的方法,那么就把这个类定义为抽象类,但是如果这个类 被其他类继承 那么必须重写.
interface A {//这是一个接口
void eag();//这是抽象方法
}
abstract class C implements A {//这个类实现了接口,但是我不想实现抽象方法,所以我可以将这个类变为抽象类,但是如果这个类 被其他类继承 那么必须重写.
}
class D extends C {//这个类继承了抽象类,则必须重写所有的抽象方法
public void eag() {//重写的抽象方法
}
}
9.一个类 可以实现多个接口.使用implements 用逗号隔开
interface A {//这是一个接口
}
interface B{//这是一个接口
}
abstract class C implements A,B {//一个类 可以实现多个接口.使用implements 用逗号隔开
}



