定义格式: interface 接口名称{ 全局常量 ; 抽象方法 ; }
因为接口本身都是由全局常量和抽象方法组成 , 所以接口中的成员定义可以简写:
1、全局常量编写时, 可以省略public static final 关键字,例如: public static final String INFO = "内容" ; 简写后: String INFO = "内容" ; 2、抽象方法编写时, 可以省略 public abstract 关键字, 例如: public abstract void print() ; 简写后: void print() ;
接口实现:
接口可以多实现: 格式: class 子类 implements 父接口1,父接口2...{ } 以上的代码称为接口的实现。那么如果一个类即要实现接口,又要继承抽象类的话,则按照以下的格式编写 即可: class 子类 extends 父类 implements 父接口1,父接口2...{ }
接口的继承:
接口因为都是抽象部分, 不存在具体的实现, 所以允许多继承,例如: interface C extends A,B{ }
注意:
如果一个接口要想使用,必须依靠子类。 子类(如果不是抽象类的话)要实现接口中的所有抽象方法。
接口和抽象类的区别:
1、抽象类要被子类继承,接口要被类实现。 2、接口只能声明抽象方法,抽象类中可以声明抽象方法,也可以写非抽象方法。 3、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。 4、抽象类使用继承来使用, 无法多继承。 接口使用实现来使用, 可以多实现 5、抽象类中可以包含static方法 ,但是接口中不允许(静态方法不能被子类重写,因此接口中不能声明 静态方法) 6、接口不能有构造方法,但是抽象类可以有
public class qxy {
public static void main(String[] args) {
student s=new student();
s.say();
}
}
public interface person {
int age=18;
void say();
}
class student implements person {
@Override
public void say() {
System.out.println("锄禾日当午,汗滴禾下土");
}
}
运行结果:
锄禾日当午,汗滴禾下土