接口(interface)的学习

一、接口小知识

1、接口是什么?

接口是一个特殊的类,这个类里面只有抽象方法与全局常量。

2、接口的定义与形式?

在Java中,使用interface关键字来实现接口的定义。

interface A{    //定义接口
    public static final String MSG = "hello,my friend!"; //全局常量
    public abstract void print();    //抽象方法
}

接口的简化定义(省略abstract和static final ,但仍然代表全局常量和抽象方法):

interface A{
    String MSG = "hello,my friend!";
    public void print();
}

3、接口的实现

以接口A为例,实现接口A的一个子类B,实现的关键字为implements

class B implements A{
    public void print(){  //覆写接口A的抽象方法
        //可以为空,但必须要有方法体
    }
}

4、接口的使用原则

  • 接口必须要有子类,一个子类可以使用implements关键字实现多个接口(在接口之间加","即可),避免单继承仅局限

  • 接口的子类(如果不是抽象类),必须覆写接口中的全部抽象方法

  • 接口的对象可以利用子类对象的向上转型进行实例化操作

5、接口&抽象类

  • 如果一个子类既要继承抽象类又要实现接口,那么应该采用先继承(extends)后实现接口(implements)的顺序完成。举例,假设C为抽象类,A,B为接口,X类继承抽象类C,实现A和B两个接口。

class X extends C implements A,B{
    //覆写所含的所有抽象方法
}
  • 一个抽象类可以继承一个抽象类或者实现多个接口。但是一个接口却不能继承抽象类,但一个接口可以使用extends关键字同时继承多个父接口。

6、总结

Java中,接口主要用于结局单继承局限的问题。

二、接口知识进阶

虽然从接口本身的概念上来讲只能够由抽象方法和全局常量组成,但是所有的内部结构不受这些要求限制,也就是说在接口里面可以定义普通内部类、抽象内部类、内部接口。

1、接口里定义抽象类,可以选择性继承。

640?wx_fmt=png

2、接口内部如果使用static去定义一个内部接口,该接口表示是一个外部接口,用外部接口.内部接口表示,子类可以直接实现A.B接口并覆写接口中的抽象。

640?wx_fmt=png

三、接口的实际应用——标准

日常生活中的USB接口。利用USB接口可以连接U盘、打印机、MP3等设备。

在进行代码开发,一定要首先开发出USB接口标准,有了标准,计算机(计算机提供对USB接口标准的支持)才可以去使用这些标准,设备厂商(例如U盘、打印机、MP3)才可以设计USB设备。

1、定义USB标准

//定义USB标准,定义标准一定就是接口
interface USB {
    public void start();  //USB设备开始工作
    public void stop();   //USB设备停止工作
}

2、定义计算机(计算机提供对USB接口标准的支持)类

class Computer {
    public void plugin(USB usb){ //插入USB接口设备(子类对象)
        usb.start();
        usb.stop();
    }
}

3、定义U盘子类

class Flash implements USB{
    public void start(){
        System.out.println("U盘开始使用");
    }
    public void stop(){
        System.out.println("U盘停止使用");
    }
}

4、定义打印机

class Print implements USB {
    public void start(){
        System.out.println("打印机开始工作");
    }
    public void stop(){
        System.out.println("打印机停止工作");
    }
}

按照USB标准设计USB设备,这样都可以在电脑的plugin()方法上去使用

5、测试代码

public class TestDemo {
    public static void main(String args[]){
        Computer c = new Computer();
        c.plugin(new Flash());
        c.plugin(new Print());
    }
}

6、测试结果

640?wx_fmt=png

7、总结

本程序首先实例化了一个Computer类的对象,然后计算机对象就可以使用不同USB设备(根据传入不同的USB接口子类对象)

最后

下一节会分享接口的应用,两个在java开发中常用的设计模式,分别是工厂设计模式(Factory)和代理设计模式(Proxy)。

最近课程比较多,加上还会有一些作业和老师那边的事情。更新会慢一点。但一定会坚持下去,一起加油,好吗?感谢大家的关注与支持。谢谢Java练成计划的朋友们!分享一首歌,下次见

640?wx_fmt=png

资源获取

1、加我好友,回复——好友

2、从基础到开发的分阶段、一整套的视频资源,回复——视频

3、基础书籍推荐——第一行代码Java,回复——书籍

4、30张图讲清java基础知识点,回复——思维导图

5、Java学习技术路线,回复——路线

6、加Java练成计划学习群,可添加好友,备注加群

640?wx_fmt=gif

你点的每一个在看,我都认真当成了喜欢...

640?wx_fmt=jpeg

专注Java学习

打通基础学习与开发实践、开发实践与底层实现

640?wx_fmt=jpeg

作者:长风破

长按二维码关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值