Java中的接口

接口

接口不可以被实例化
实现类必须实现接口的所有方法
实现类可以实现多个接口
接口中的变量都是静态变量

接口只需要定义方法就行了,具体的实现过程由其他类去处理,接口本身不用理会

使用实例

public interface UsbInterface {
    public void service();
}

定义 UsbInterface 接口

public interface PowerInterface {
    public void getPower();
}

定义 PowerInterface 接口

public class UDisk implements UsbInterface {
    public void service() {
        System.out.println("连接USB口,开始传输数据");
    }
}

定义 UDisk 类,实现 UsbInterface 接口,使用接口必须实现接口里的所有方法

public class UsbFan implements UsbInterface,PowerInterface {
    public void service() {
        System.out.println("连接USB口,获得电源,风扇开始转动");
    }
    public void getPower() {
        System.out.println("连接充电口,实现充电");
    }
}

定义 UsbFan 类,实现 UsbInterfacePowerInterface 两个接口

public class Test {
    public static void main(String[] args) {
        UsbInterface uDisk = new UDisk();
        uDisk.service();
        UsbFan usbFan = new UsbFan();
        usbFan.service();
        usbFan.getPower();
    }
}

定义 Test 类, UsbInterface uDisk = new UDisk() 也可以写为 UDisk uDisk = new UDisk() ,运行结果如下:

连接USB口,开始传输数据
连接USB口,获得电源,风扇开始转动
连接充电口,实现充电


接口和继承的混合使用

一个类可以继承其他类的同时实现接口,但必须先继承父类,再实现接口

造一个防盗门,防盗门本身有 ++开++ 和 ++关++ 两种能力,另外防盗门上有锁 ,锁有 ++上锁++ 和 ++开锁++ 的功能。

public abstract class Door {
    public abstract void open();
    public abstract void close();
}

定义一个门的抽象类 Door ,里面分别是开门和关门的抽象方法 open()close()

public interface Lock {
    void lockUp();
    void openLock();
}

定义一个锁的接口 Lock ,里面分别是开锁和上锁的方法 lockUp()openLock()

interface 是一个特殊的抽象类,里面的方法默认是抽象方法

public class TheftprooDoor extends Door implements Lock {

    @Override
    public void lockUp() {
        System.out.println("插进钥匙,向左旋转钥匙三圈,锁上了,拔出钥匙");
    }

    @Override
    public void openLock() {
        System.out.println("插进钥匙,向右旋转钥匙三圈,锁开了,拔出钥匙");
    }

    @Override
    public void open() {
        System.out.println("用力推,门开了");
    }

    @Override
    public void close() {
        System.out.println("轻轻拉门,门关上了");
    }
}

定义 TheftprooDoor 类, 把门和锁组装起来,注意 先继承再实现 ,到这一步一个防盗门就算做好了

public class DoorTest {
    public static void main(String[] args) {
        TheftprooDoor tfd = new TheftprooDoor();
        tfd.close();
        tfd.lockUp();
        tfd.openLock();
        tfd.open();
    }
}

定义 DoorTest 类,来测试一下防盗门能不能使用。结果输出:

轻轻拉门,门关上了
插进钥匙,向左旋转钥匙三圈,锁上了,拔出钥匙
插进钥匙,向右旋转钥匙三圈,锁开了,拔出钥匙
用力推,门开了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值