interface:接口

1.使用说明:
  * 1.接口使用interface来定义

  * 2.Java中,接口和类是并列的两个结构

  * 3.如何定义接口:定义接口中的成员
    * 3.1 JDK7及以前:只能定义全局常量和抽象方法
      * >全局常量:public static final的.但是书写时,可以省略不写
      * >抽象方法:public abstract的方法,但是书写时,可以省略不写

    * 3.2 JDK8:除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法

  * 4. 接口中不能定义构造器的!意味着接口不可以实例化

  * 5. Java开发中,接口通过让类去实现(implements)的方式来使用.
    * 如果实现类覆盖了接口中的所抽象方法,则此实现类就可以实例化
    * 如果实现类没覆盖接口中所的抽象方法,则此实现类仍为一个抽象类

  * 6. Java类可以实现多个接口 --->弥补了Java单继承性的局限性
    * 格式:class AA extends BB implements CC,DD,EE

  * 7. 接口与接口之间可以继承,而且可以多继承

  * 8. 接口的具体使用,体现多态性

  * 9. 接口,实际上可以看做是一种规范

2.举例:

 class Computer{
public void transferData(USB usb){//USB usb = new Flash();
usb.start();
System.out.println("具体传输数据的细节");
usb.stop();
}
} interface USB{
//常量:定义了长、宽、最大最小的传输速度等
void start();
void stop();
} class Flash implements USB{
@Override
public void start() {
System.out.println("U盘开启工作");
} @Override
public void stop() {
System.out.println("U盘结束工作");
}
} class Printer implements USB{
@Override
public void start() {
System.out.println("打印机开启工作");
} @Override
public void stop() {
System.out.println("打印机结束工作");
}
}

体会:

  * 1.接口使用上也满足多态性
  * 2.接口,实际上就是定义了一种规范
  * 3.开发中,体会面向接口编程!

3.体会面向接口编程的思想

  面向接口编程:我们在应用程序中,调用的结构都是JDBC中定义的接口,不会出现具体某一个数据库厂商的API。

4.Java8中关于接口的新规范
//知识点1:接口中定义的静态方法,只能通过接口来调用。

//知识点2:通过实现类的对象,可以调用接口中的默认方法。
      //如果实现类重写了接口中的默认方法,调用时,仍然调用的是重写以后的方法

//知识点3:如果子类(或实现类)继承的父类和实现的接口中声明了同名同参数的默认方法,那么子类在没重写此方法的情况下,默认调用的是父类中的同名同参数的方法。-->类优先原则

//知识点4:如果实现类实现了多个接口,而这多个接口中定义了同名同参数的默认方法,
     //那么在实现类没重写此方法的情况下,报错。-->接口冲突。
     //这就需要我们必须在实现类中重写此方法

//知识点5:如何在子类(或实现类)的方法中调用父类、接口中被重写的方法

public void myMethod(){
  method3();//调用自己定义的重写的方法
  super.method3();//调用的是父类中声明的
  //调用接口中的默认方法
  CompareA.super.method3();
  CompareB.super.method3();
}

5.面试题:
抽象类和接口的异同?

相同点:不能实例化;都可以包含抽象方法的。

不同点:
  1)把抽象类和接口(java7,java8,java9)的定义、内部结构解释说明
  2)类:单继承性

    接口:多继承

    类与接口:多实现

33-关键字:interface的更多相关文章

  1. C# -- 接口 (关键字:interface)

    C#: 接口(关键字:interface) 1.代码(入门举例) class Program { static void Main(string[] args) { Console.WriteLine ...

  2. 用关键字interface定义接口,通过关键字implements来实现接口

    [定义]Java中,能够完成特定功能的,由若干属性和方法组织成的,相对独立的属性和方法的集合. [用途]实现类的多继承,以解决Java只能单继承,不支持多继承的问题. [特点] 用关键字interfa ...

  3. java关键字-interface

    1:是用关键字interface定义的. 2:接口中包含的成员,最常见的有全局常量.抽象方法. 注意:接口中的成员都有固定的修饰符. 成员变量:public static final 成员方法:pub ...

  4. 【Java关键字-Interface】为什么Interface中的变量只能是 public static final

    三个关键字在接口中的存在原因:public:接口可以被其他接口继承,也可以被类实现,类与接口.接口与接口可能会形成多层级关系,采用public可以满足变量的访问范围: static:如果变量不是sta ...

  5. Java 接口关键字 interface

    interface这个关键字产生一个完全抽象的类,它根本就没有提供任何具体的实现,它允许创建者确定方法名.参数列表和返回类型,但没有任何方法体,接口只提供了形式,而未提供任何具体实现 一个接口表示:& ...

  6. PHP中interface与 implements 关键字

    类中接口的应用 1.关键字:interface 2.关键字:implements 1.接口的介绍与创建 接口:一种成员属性全部为抽象或常量的特殊抽象类. 规则: 1.类中全部为抽象方法. 2.抽象方法 ...

  7. php中的抽象类(abstract class)和接口(interface)

    一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...

  8. Delphi中的关键字与保留字

    Delphi中的关键字与保留字 分类整理 Delphi 中的“关键字”和“保留字”,方便查询 感谢原作者的收集整理! 关键字和保留字的区别在于,关键字不推荐作标示符(编译器已经内置相关函数或者留给保留 ...

  9. java 常用的一些关键字

    1.关键字extends 1.继承作用 优化代码,减少代码的重复使用. 2.继承使用时机 两个类之间必须要满足is a的关系 ,才能够拥有继承关系,不是任 何 情况下都允许继承 3.继承的使用注意事项 ...

  10. objc@interface的设计哲学与设计技巧

    blog.sunnyxx.com 我是前言 学习objc时,尤其是先学过其他编程语言再来看objc时,总会对objc的类声明的关键字interface感到有点奇怪,在其它面向对象的语言中通常由clas ...

随机推荐

  1. day12 文件操作(下)

    目录 一.x模式(控制文件操作模式,与rwa同级) 1 特点 2 格式 二.b模式(控制文件读写内容的模式,与t同级) 1.b模式和t模式的区别 2 b模式应用 3 循环读取文件 三.文件操作的其他方 ...

  2. VSCode, 当今最流行的免费开源代码编辑器,微软出品,必属精品

    什么是VSCode? Visual Studio Code是一个轻量级但功能强大的源代码编辑器,可在您的桌面上运行,并且可用于Windows,macOS和Linux.它内置了对JavaScript,T ...

  3. JVM 专题九:运行时数据区(四)本地方法栈

    1. 本地方法栈 2. 什么是本地方法栈? Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用   本地方法栈,也是线程私有的. 允许被实现成固定或者是可动态拓展的内存大小 ...

  4. python数据处理(七)之数据探索和分析

    1.探索数据 1.1 安装agate库 1.2 导入数据 1.3 探索表函数 a.排序 b.最值,均值 c.清除缺失值 d.过滤 e.百分比 1.4 连结多个数据集 a.捕捉异常 b.去重 c.缺失数 ...

  5. 爬虫07 /scrapy图片爬取、中间件、selenium在scrapy中的应用、CrawlSpider、分布式、增量式

    爬虫07 /scrapy图片爬取.中间件.selenium在scrapy中的应用.CrawlSpider.分布式.增量式 目录 爬虫07 /scrapy图片爬取.中间件.selenium在scrapy ...

  6. 第七章:Android动画深入分析

    7.1 View动画 View动画的作用对象是View,它支持四种动画效果,分别是平移动画,缩放动画,旋转动画和透明动画. 帧动画也属于View动画,但是帧动画的表现形式和上面的四种变换效果不太一样. ...

  7. python 复制以及更改列表操作

    题目:设置一个老用户列表和一个新用户列表,检查老用户列表中是否与新注册的用户名字有重复(不区分大小写),老用户列表不能被破坏 usernames = ['admin','Tom','john','ja ...

  8. 题解 CF1385D 【a-Good String】

    题意 定义:字符串s 为一个c-好串(c 为一个字符)时,必须满足: 当\(|s| = 1\) ,\(s = c\) 当\(|s| > 1\), \(s\) 的左半部分为全为 \(c\),右半部 ...

  9. Windows File Recovery - 微软官方文件恢复工具

    假如你不小心误删除了文件或因各种意外情况丢失数据后,你可以通过 微软这款工具 这个工具来尝试恢复它们.WinFR 工具支持读取本机硬盘.移动硬盘.U 盘,或者连接相机.手机.使用读卡器来恢复 SD.T ...

  10. elementUI form表单验证不通过的原因

    <el-form :model="form" :rules="rules"> <el-form-item prop="input&q ...