第二节 什么是接口

什么是接口

主讲教师:王少华     QQ群号:483773664

学习目标

  1. 掌握接口的定义与使用
  2. 理解接口与抽象类的区别

一、什么是接口

现实生活中,我们经常听到接口这个词,比如USB接口,那它是什么意思呢?我们拿USB接口为例,不管那个厂商生产的USB存储器,我们都可以通过USB接口让电脑识别出来,这是为什么呢?这是因为这些生产厂商遵循了一套相同的标准,并按照这个标准来生成USB设备。

在软件中,接口同样是一种规范和标准,它们可以约束类的行为,是一些方法特征的集合,但是没有方法的实现。因此,也可以把接口看成特殊的”抽象类“。

二、接口的定义

和定义类不一样,不使用关键字class,而使用关键字interface。

(一)定义语法

语法如下


1

2

3

4

[修饰符] interface 接口名 extends 父接口1,父接口2...{

    零个到多个常量定义...

    零个到多个抽象方法定义...

}

说明:

  1. 修饰符只能是public或省略
  2. 接口名只要符合Java标识符命名规范就可以,建议由多个有意义的单词连缀而成,首字母大写,单词与单词间不要有连接符
  3. 一个接口可以有多个直接父接口,但不能继承类。
  4. 接口里定义的属性只能是常量,而且不管是否使用了public static final修饰,接口里的属性总将使用这三个修饰来修饰
  5. 接口里没有构造器和初始块
  6. 接口中的方法,只能是抽象方法

(二)定义一个接口


1

2

3

4

5

6

public interface InterfaceDemo {

    //接口里定义的属性只能是常量

    int MAX_LENGTH = 50;

    //接口里定义的方法只能是抽象方法

    void getLength();

}

(三)验证:管是否使用了public static final修饰,接口里的属性总将使用这三个修饰来修饰

接口里的属性默认是使用public static final 修饰,因此即使另一个类处于不同包下,也可以通过接口来访问接口的常量属性

三、接口的继承

接口的继承和类继承不一样。接口的继承是多继承,多个接口之间用,分隔开。

和类继承相似,子接口扩展了父接口,并将获得父接口的抽象方法、常量属性等


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

public interface InterfaceA {

    String PRO_A="InterfaceA";

    public void testA();

}

public interface InterfaceB {

    String PRO_B="InterfaceB";

    public void testB();

}

public interface InterfaceC extends InterfaceA,InterfaceB{

    String PRO_C="InterfaceC";

    public void testC();

}

public class TestInterfaceExtends {

    public static void main(String[] args) {

        System.out.println(InterfaceA.PRO_A);

        System.out.println(InterfaceB.PRO_B);

        System.out.println(InterfaceC.PRO_C);

    }

}

四、使用接口

(一)接口的用途

接口不能创建实例

接口可以用于声明引用型的变量,且此变量必须指向实现了此接口的实现类的对象;

接口的主要用途是被实现类实现

(二)、接口的实现

接口实现,使用关键字:implements

一个类可以实现一个或多个接口,多个接口之间用分号分隔开

Java具有单继承,多实现的特性


1

2

3

[修饰符] class 类名 extends 父类 implements 接口1,接口2...{

   类体部分

}

一个类实现了一个或多接口后,这个类必须完全实现这些接口的全部抽象方法,否则这个类必须定义为抽象类

1、全部实现


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

public class DemoD implements InterfaceA,InterfaceB,InterfaceC{

    @Override

    public void testC() {

        // TODO Auto-generated method stub

        

    }

    @Override

    public void testB() {

        // TODO Auto-generated method stub

        

    }

    @Override

    public void testA() {

        // TODO Auto-generated method stub

        

    }

第二节 什么是接口

时间: 2024-11-08 04:33:37

第二节 什么是接口的相关文章

第二节 Java Swing中的基本容器:JFrame

第二节 基本容器:JFrame 如果要使用Swing创建一个窗口,则直接使用JFrame即可,此类事Component类的子类,常用方法如下: 小试牛刀 创建一个简单的窗口 import java.awt.*; import java.io.*; import javax.swing.*; public class JavaSwingTest { public static void main(String args[]) throws IOException{ test1(); } //创建一

OC第二节的总结

实例变量的可见度:@public:公共的,在任何文件中都可以访问,(访问方式是对象+指向操作符+实例变量,例如:per->name)@protected:受保护的,有一定的访问权限,只允许在本类文件以及子类文件中访问,其他文件不可以访问@private:私有的,只允许在本类文件中访问,不可以在子类文件 以及其他文件中访问默认的可见度是@protected为什么不声明为@public?   1.声明为@public的实例变量,外部就可以访问以及修改,会影响内部的一个实现,暴露实现细节   2.违背

【软件构造】第二章第二节 软件构造的过程、系统和工具

第二章第二节 软件构造的过程.系统和工具 Outline 广义的软件构造过程 编程 静态代码分析 动态代码分析 调试与测试 重构 狭义的软件构造过程 构造系统:经典BUILD场景 构造系统的组件 构造过程和构造描述 Java编译工具 子目标和结构变体 构造工具 Notes ## 广义的软件构造过程 [编程(Coding)] 开发语言:如Java.C.Python 使用IDE(集成开发工具)的优势(组成) 方便编写代码和管理文件(有代码编辑器,代码重构工具.文件和库(Library)管理工具) 能

【软件构造】第五章第二节 设计可复用的软件

第五章第二节  设计可复用的软件 5-1节学习了可复用的层次.形态.表现:本节从类.API.框架三个层面学习如何设计可复用软件实体的具体技术. Outline 设计可复用的类--LSP 行为子结构 Liskov替换原则(LSP) 各种应用中的LSP 数组是协变的 泛型中的LSP 为了解决类型擦除的问题-----Wildcards(通配符) 设计可复用的类--委派与组合 设计可复用库与框架 Notes ## 设计可复用的类--LSP 在OOP之中设计可复用的类 封装和信息隐藏 继承和重写 多态.子

【软件构造】第六章第二节 可维护的设计模式

第六章第二节 可维护的设计模式 Outline 创造性模式:Creational patterns 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 建造者模式(Builder Pattern) 结构化模式:Structural patterns 桥接模式(Bridge Pattern) 代理模式(Proxy Pattern) 组合模式(Composite Pattern) 行为化模式:Behavioral patterns 中介者模式

【软件构造】第七章第二节 错误与异常处理

第七章第二节 错误与异常处理 本节关注:Java中错误和异常处理的典 型技术--把原理落实到代码上! Outline: Java中的错误和异常(java.lang.throwable) 异常 Runtime异常与其他异常(Exception) Checked异常和unchecked异常 checked异常的处理机制 自定义异常 Notes: ## Java中的错误和异常 [Throwable] Java.lang.throwable Throwable 类是 Java 语言中所有错误或异常的超类

第二节:mybatis之返回值总结

mybatis框架让我们能在编程中只需要编写一个接口,然后再编写mapper映射文件,无需编写接口的实现类.其实这是mybatis通过动态代理,把mapper映射文件的内容转化为真正的执行部分.因此我们在编程中,需要特别关注接口和映射文件的编写.本节主要讲解接口的返回值类型在mapper文件中的编写方式. 我们思考下,返回值类型一般分为 数字类型,比如查询记录的个数 单个对象 多个对象,使用List封装 单个对象,使用map封装 多个对象,使用map封装 由于每次建立工程比较复杂,可以参考第一节

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一、 除夕诗词概述 二、元日诗词概述 三、 元宵诗词概述 第二节:春节古诗词拾萃

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一. 除夕诗词概述 二.元日诗词概述 三. 元宵诗词概述 第二节:春节古诗词拾萃 一.腊祭诗词 二.祭灶诗词 三.除夕诗词 四.元旦诗词 五.人日诗词 六.元宵诗词 第一节:春节古诗词概述 中国的春节,作为除旧迎新的节日,时间相当长,从年前的腊月二十三,天空中就似乎弥漫了节日的气息.这种节日的气氛,在保持传统风俗较好的地方,甚至会持续到二月二龙抬头的时候,但欢度春节的高潮,应该说是自除夕始一直到上元之夜.因此,历代歌咏和反

centos单用户 救援 运行级别 第二节课

centos单用户 救援 运行级别 第二节课 yum工具在minimal安装级别就已经安装 yum list:列出远程服务器端的所有的包的列表 安装桌面套件,安装图形化桌面 yum groupinstall -y "desktop"yum groupinstall -y "X window system" 临时显示英文 LANG=en