1、接口定义
接口是由抽象方法和全局常量组成的一种特殊的类,接口用interface定义,如下是接口A
interface A{
public static final NAME = "我的名字是天悦"; //全局常量
public abstract void getName(); // 抽象方法
public abstract void printName();//抽象方法
}
实际上,由于接口中只能出现抽象类和全局变量,所以接口的定义可以简化如下:
interface A{
String NAME = "我的名字是天悦";
void getName();//也可加上public
void printName();
}
2、使用接口的原则
接口只能被继承,不能被实例化,接口的继承叫做实现接口,类B实现以上的A接口,实现代码如下:
class B implements A{
public void getName(){
system.out.println(NAME);
}
public void printName(){
system.out.println("名字:"+NAME);
}
}
一个类可以实现多个接口,比如类C能同时实现以上的接口A,以及接口D,代码如下:
interface D{
public void fun();
}
class C implements A,D{
public void getName(){
……
}
public void printName(){
……
}
public void fun(){
……
}
}
一个类既要继承父类,又要实现接口的话,格式如下
class E extends F implements G,H{
}
接口不能继承抽象类,抽象类可以实现接口,
abstract class J implements A{
public abstract void getJ();
}
class K extends J{
public void getName(){
……
}
public void printName(){
……
}
public void J(){
……
}
}
接口和接口之间是继承关系,一个接口可以继承多个接口,
interface P extends A,D{
public void getP();
}
3、接口的实例化
接口和抽象类一样,可以通过对象多态性进行实例化,代码如下:
interface Person{
String SEX = "女";
public void say();
public void run();
}
class Student implements Person{
public void say(){
system.out.printn("我是学生");
}
public void run(){
system.out.println("我跑的很快");
}
}
public class Test{
public static void main(String args[]){
Person p = new Student();
}
}
4、接口的应用
接口的作用是,定义一种标准。如下,定义一个连接电脑打印机的标准,打印机和U盘插入USB口都要遵守这个标准。
public class Computer{
public static void main(String srgs[]){
MyComputer.plugin(new Flash());
MyComputer.plugin(new Print());
}
}
class MyComputer {
public static void plugin(USB u){
u.start();
u.stop();
}
}
interface USB{
public void start();
public void stop();
}
class Flash implements USB{
public void start(){
System.out.println("USB开始");
}
public void stop(){
System.out.println("USB结束");
}
}
class Print implements USB{
public void start(){
System.out.println("打印机开始");
}
public void stop(){
System.out.println("打印机结束");
}
}
代码的执行结果如下: