1、接口定义
如果一个类只由全局常量和抽象方法构成,这种情况不会定义为抽象方法,而是定义为接口,所以接口准确来说就是一个特殊的类,这个类只由全局常量和抽象方法组成,就连构造方法都没有
//定义一个接口
interface A{
public static final String B="Hello";//定义一个全局常量
public abstract void println();//定义一个抽象方法
}
接口和类的不同的就是他的方法没有实现代码,而定义一个接口并没有太大用处,一般来说都有一个实现接口,还有一个使用接口。
2、实现接口
接口在使用时后的注意事项
1.接口可以继承接口但不能继承普通接口
2.类和接口的关系。
实现关系:A implements B接口,需要让A类重写B接口的所有抽象方法或者A时抽象类
类可以实现多个接口:需要让类重写多个接口的所有的抽象方法或者类是抽象类
3.java
支持单继承 多实现:
实现和继承在编写代码的时候几乎是等价
父类 f = new 子类();
接口 i = new 实现类();
public class Test01 {
public static void main(String[] args) {
// 接口指向了实现类对象 父类指向子类对象是一样
Fly f = new Swk();
f.fly();
}
}
class Swk implements Fly{
@Override
public void fly(){
System.out.println("筋斗云~~~");
}
@Override
public int compareTo(Object o) {
return 0;
}
}
interface Fly extends Compare, Serializable,Comparable {
// public static final接口中的变量默认都是这三个修饰 所以必须要初始化
public static final int num = 10;
//接口不能写构造器
//接口定义的方法都是抽象方法 默认public abstract
public abstract void fly();
//接口中可以定义普通的静态的方法 拥有方法体 默认public
public static void method(){}
//JDK8之后 可以定义default方法 可以拥有方法体
default void function(){
System.out.println("func");
}
}