接口
接口:接口里面定义的是一个扩展功能,如果有的事物想要具备一些额外的功能,就可以来实现这个接口并重写该功能。
接口定义:使用interface来定义接口
接口的实现:implements来实现接口(接口的实现与继承类似)
interface JieKouA{}//接口定义
class R implements JieKouA{}//接口实现
接口的特点:
1.接口定义格式:interface 接口名{}
2.类实现接口格式:class 类名 implements 接口名{}
3.接口不能进行实例化,即接口不能创建对象,可以使用多态的形式进行实例化
4.接口的子类:可以是抽象类,也可以是具体类
接口的成员特点:
1.接口中只能定义常量不能定义变量,并且常量为公共常量(因为接口中定义变量有默认修饰符public static final);
2.接口中没有构造方法;
3.接口中的方法全部为抽象方法,没有非抽象方法(因为在接口中方法前面有默认修饰符 public abstract);
注意:
在JDK1.8之后,可以在接口中定义default修饰方法,就可以给出方法的具体实现。
JDK1.8之后也可以在接口中定义静态方法
interface MyInterface{
void hehe();//本来接口中只能是抽象方法,抽象方法没有大括号具体的实现
//JDK1.8之后就可以使用default修饰,就可以给出方法的实现
public default void haha(){
System.out.println("abc");
}
}
类、接口之间的关系
类与类之间的关系:
继承关系、单继承或者多层继承
类与接口之间的关系:
实现关系,可以多实现,一个类可以实现多个接口,具体实现语句格式如下:这行代码表示MyClass实现AA,BB,CC三个接口,即多实现
class MyClass implements AA,BB,CC{}
注意:一个类在实现接口的同时还可以继承一个父类,代码格式如下:继承需在前,接口实现在后
class MyClass extends Fu implements AA,BB,CC {}
接口与接口之间的关系:
接口与接口之间的关系是继承关系,一个接口可以继承一个接口也可以继承多个接口,多继承格式如下:
interface sonInterface extends Ainterface,Binterface{}
抽象类与接口之间的区别:
1.抽象类中可以定义成员变量也可以定义成员常量,接口中只能定义公共的静态常量;
2.抽象类中有构造方法,但是接口中没有构造方法;
3.抽象类中可以定义抽象方法也可以定义非抽象方法,但是接口中只能定义抽象方法