接口

117 阅读2分钟

接口格式: 权限修饰符(public/缺省的)interface 接口名{ }

说明:

1、接口和类是并列存在的关系

2、接口中没有构造器,接口不能实例化

3、接口中只能有常量和抽象方法(JDK1.8之前)

4、接口和接口之间是继承关系,而且是多继承。 接口1 extends 接口2,接口3.......

5、类和接口之间的关系是实现关系,而且还是多实现。 类 implements 接口1,接口2........

6、类实现接口后必须重写接口中的所有抽象方法,如果不想重写,那么该类可以变成抽象类

7、接口和类之间的多态性

interface A{
//抽象方法info
void info();
}
interface B{
//抽象方法test
void test();
}
interface C extends B,A{

}

//声明接口
interface Myinterface{
//常量
public static final int PERSON_AGE=18;
String name="张三";//系统默认也会加上public static final

//抽象方法
public abstract void show();//权限修饰符只能是public
void say();//系统会默认加上public abstract
}

//一个类可以实现多个接口,并且需要重写接口中所有的抽象方法
class MyClass implements A,B,C{
@Override
public void info() {

}
@Override
public void test() {

   }
}

public class InterfaceTest {
    public static void main(String[] args) {
    //接口中常量的调用;接口名.常量名
        System.out.println(Myinterface.PERSON_AGE);
        System.out.println(Myinterface.name);
   }
}

/*
接口和类之间的多态性:接口的类型指向实现类的对象
*/

interface USB{
void start();
void close();
}

interface Bluetooth{
void connect();
void disconnect();
}

class Printer implements USB,Bluetooth{
@Override
public void start() {
    System.out.println("打印机开始工作,打印内容中");
}
@Override
public void close() {
    System.out.println("打印机停止工作");
}
@Override
public void connect() {
    System.out.println("打印机连接蓝牙成功");
}
@Override
public void disconnect() {
    System.out.println("打印机蓝牙已断开");
   }
}

class Mouse implements USB{
@Override
public void start() {
    System.out.println("鼠标开始运行");
    System.out.println("灯亮了");
}

@Override
public void close() {
    System.out.println("鼠标停止运行");
    System.out.println("灯灭了");
   }
}

class Computer1{
public void runUSB(USB usb){
    usb.start();
    System.out.println("---------------------");
    usb.close();
}
public void runBluetooth(Bluetooth bt){
    bt.connect();
    System.out.println("---------------------");
    bt.disconnect();
   }
}

public class USBTest {
public static void main(String[] args) {
    Computer1 computer1=new Computer1();
    //接口的类型指向实现类的对象
    USB mouse=new Mouse();
    computer1.runUSB(mouse);

    Printer pt=new Printer();
    computer1.runUSB(pt);//USB usb=pt;
    computer1.runBluetooth(pt);//Bluetooth bt=pt;
   }
}