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 用逗号隔开 }