2019-10-25-23:22:23

目录

  1.接口的概念

  2.接口的定义格式

  3.接口包含的内容

  4.接口的使用步骤

  5.继承父类并实现多个接口

  6.接口之间的多继承


接口的概念

  接口是指对协定进行定义的引用类型。其他类型实现接口,以保证它们支持某些操作。接口指定必须由类提供的成员或实现它的其他接口。与类相似,接口可以包含方法、属性、索引器和事件作为成员,其中最终哟啊的内容就是其家中的抽象方法

接口的定义格式

  public interface 接口名称{

    接口内容

  }

接口包含的内容

  1.常量

 package demopra.Interface;
//定义一个接口
public interface InterfaceContent01 {
//接口包含的内容(常量)
double PI = 3.141592654;
}

  2.抽象方法

 package demopra.Interface;
//定义一个接口
public interface InterfaceContent02 {
//接口包含的内容(抽象方法)
public abstract void method();//(public abstract两个关键字可以省略)
}

  3.默认方法

    1.备注:接口当中的默认方法可以解决接口升级的问题

    2.接口的默认方法可以通过接口实现类对象进行直接调用

    3.接口的默认方法可以被接口的实现类进行覆盖重写

 package demopra.Interface;
/*
格式:
public default 返回值类型 方法名称(参数列表){
方法体
}
*/
//定义一个接口
public interface InterfaceContent03 {
//接口包含的内容(默认方法)
public default void method03(){
System.out.println("这是一个默认方法");
}
}
 package demopra.Interface;

 public class InterfaceContentt03Test implements InterfaceContent03{
public static void main(String[] args) {
//创建实现类对象
InterfaceContentt03Test ic = new InterfaceContentt03Test();
//实现类对象直接调用接口的默认方法
ic.method03();
}
// //实现类覆盖重写接口的默认方法
// @Override
// public void method03() {
// System.out.println("实现类覆盖重写接口的默认方法");
// }
}

  4.静态方法

 package demopra.Interface;
/*
格式:
public static 返回值类型 方法名称(){
方法体
}
提示:就是将abstract或者default换成static 即可,记得带上方法体{}
注意事项:不能通过接口实现类对象来调用接口当中的静态方法,只能通过接口名称来调用
格式:
接口名称.静态方法(参数);
*/
//定义一个接口
public interface InterfaceContent04 {
//接口包含的内容(静态方法)
public static void method04(){
System.out.println("这是一个静态方法");
}
}
 package demopra.Interface;
//创建一个接口的实现类
public class InterfaceContentt04Test implements InterfaceContent04{
public static void main(String[] args) {
//创建一个实现类对象
InterfaceContentt04Test ic = new InterfaceContentt04Test();
//错误写法,会报错
// ic.method04(); //正确调用方法
InterfaceContent04.method04();//执行结果:这是一个静态方法
}
}

  5.私有方法

 package demopra.Interface;
/*
为什么要用私有方法:
我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题。
但是这个共有方法不应该让实现类使用,应该是私有化的。
私有方法的两种用法:
普通私有方法:解决多个默认方法之间代码重复问题
格式:
private 返回值类型 方法名称(参数列表){
方法体
}
静态私有方法:解决多个静态方法之间代码重复问题
格式:
private static 返回值类型 方法名称(){
方法体
}
*/
//定义一个接口
public interface InterfaceContent05 {
//接口包含的内容(私有方法)
public static void method0501(){
System.out.println("这是一个普通私有方法1");
method05();
} public static void method0502(){
System.out.println("这是一个普通私有方法2");
method05();
}
//定义一个普通私有方法
private static void method05(){
System.out.println("AAAA");
System.out.println("BBBB");
}
//静态私有方法同理
}
 package demopra.Interface;

 public class InterfaceContentt05Test {
public static void main(String[] args) {
//直接通过接口名调用
InterfaceContent05.method0501();
InterfaceContent05.method0502();
//错误的写法,private不能直接调用
// InterfaceContent05.method05();
}
//静态私有方法同理 /*
结果:
这是一个普通私有方法1
AAAA
BBBB
这是一个普通私有方法2
AAAA
BBBB
*/
}

接口的使用步骤

  1.接口不能直接使用,逆序有一个"实现类了"来"实现"该接口

    格式:

      public class 实现类名称 implements 接口名称{

        实现类内容

      }

  2.接口的实现必须覆盖实现接口中所有的抽象方法

    实现:去掉abstract关键字,加上方法体大括号

  3.创建实现类对象,进行使用

  备注:如果实现类并没有覆盖重写接口中所有的实现方法,那么这个实现类自己必须是抽象类

继承父类并实现多个接口

  使用接口的时候,需要注意:
    1.接口是没有静态代码块或者构造方法的。
    2.一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。
      格式,
        public class MyInterfaceImpl impl ements MyInterfaceA, MyInterfaceB {
          //覆盖重写所有抽象方法
        }
    3.如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。
    4.如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类。
    5.如果实现类锁实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写。
    6.一个类如果直接父类当中的方法,和接口当中的默认方法产生了冲突,优先用父类当中的方法。

接口之间的多继承

  1.类与类之间是单继承的.直接父类只有一个。
  2.类与接口之间是多实现的。一个类可以实现多个按口。
  3.接口与接口之间是多继承的。
    注意事项
      1多个父接口当中的抽象方法如果重复,没关系。
      2.多个父接口当中的默认方法如果重复,那么子接口必须进行默认方法的覆盖重写, [而且带着default关键字]

Java之路---Day11(接口)的更多相关文章

  1. Java之路——名词解释(一)

    一.开篇 许多人在初接触Java的时候,都会被各种Java的英文缩写名词给弄得头晕脑胀.看一个技术,内容里又会有一堆其他的技术名词,看了半天不知所云.尝试去查一下这些名词的解释,除了非常学术性的解释之 ...

  2. Java之路——敬JAVA初学者(作者:MoMo)

    作为一名大四的毕业生,大学三年过,有得有失.作为一个喜欢编程,喜欢JAVA的人,自学其实是一件美事,很有意思的事.要是能再找个女朋友一起学.嘿嘿,就不枉在大学走了一遭啊!    要离开学校了,还是想留 ...

  3. Java 中的集合接口——List、Set、Map

    Java 中的集合接口——List.Set.Map 什么叫集合:集合就是Java API所提供的一系列类的实例,可以用于动态存放多个对象.这跟我们学过的数组差不多,那为什么我们还要学集合,我们看看数组 ...

  4. 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案

    方案特点: 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案,简化软件开发流程,减少各应用系统相同模块的重复开发工作,提高系统稳定性和可靠性. 基于HTTP协议的开发接口 使用特点在网页 ...

  5. 【java】[转]标记接口和标记注解注解

    Java中的标记接口和标记注解 http://blog.sina.com.cn/s/blog_7fdce91f0101d93m.html

  6. JAVA:抽象类VS接口

    JAVA中抽象类和接口的区别比较,以及它们各自的用途. 1.JAVA抽象类: 抽象类除了不能实例化以外,跟普通类没有任何区别.在<JAVA编程思想>一书中,将抽象类定义为“包含抽象方法的类 ...

  7. 转:二十一、详细解析Java中抽象类和接口的区别

    转:二十一.详细解析Java中抽象类和接口的区别 http://blog.csdn.net/liujun13579/article/details/7737670 在Java语言中, abstract ...

  8. java.util.Map.Entry接口

    java.util.Map.Entry接口主要就是在遍历map的时候用到,给你个例子:package test;import java.util.*;import java.util.Map.Entr ...

  9. Java IO 四大附加接口、try-with-resource

    Java IO 四大附加接口.try-with-resource @author ixenos 四大附加接口 Closeable.Flushable.Readable.Appendable Close ...

随机推荐

  1. RSA前台加密后台解密的应用

    写在前面 项目安全测试需要将登录功能修改, AES加密不符合要求, 现改为RSA非对称加密.(将登录密码加密后传给后台, 后台解密后再进行一系列的校验) .期间遇到了前台js加密但是后台解密失败的问题 ...

  2. IntelliJ IDEA 运行你的第一个Java应用程序 idea运行main方法

    IntelliJ IDEA 运行你的第一个Java应用程序创建项目让我们创建一个简单的Java Hello World项目. 单击创建新的项目. 打开新建项目向导.你应该注意的主要是项目的SDK.SD ...

  3. mapdb的适用场景介绍

    对于大部分系统来说,mapdb并无太大价值,而且增加了成本.但是如果一级缓存巨大例如数以十GB级别,或占据了整个JVM的1/2以上,mapdb的价值就会体现出来.正如其官网介绍: MapDB prov ...

  4. session与getSession()用法总结

    一.session 1.session的过期时间是从什么时候开始计算的?是从一登录就开始计算还是说从停止活动开始计算? 从session不活动的时候开始计算,如果session一直活动,session ...

  5. Java基础 awt Font 四种字体样式

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  6. odoo开发笔记 -- odoo权限管理

    odoo框架 整体权限可以分为4个级别: (1) 菜单级别: 不属于指定菜单所包含组的用,看不到相应菜单.不安全,只是隐藏菜单,若用户知道菜单ID,仍然可以通过指定URL访问(2) 对象级别: 对某个 ...

  7. 解决pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path问题

    解决方案: 找到python的安装路径下的pytesseract:   例如我的是  C:\develop\Python\Lib\site-packages\pytesseract .用文本编辑器打开 ...

  8. server computer anaconda

    star@xmatrix:~/Anaconda$ star@xmatrix:~/Anaconda$ conda create -n wind1 python=3.6Solving environmen ...

  9. postman 测试Excel文件导入导出功能

    1.导入的测试方法 选择form-data,key值填写方法对应的参数,选择File,Value处上传文件即可. 2. 导出的测试方法 在导出文件的时候,响应结果是乱码,然后在测试的时候选择下载,下载 ...

  10. coding git push 403 时

    直接修改 项目目录下的 .git/config   url url = https://coding用户名:coding密码@git.coding.net/coding账号/coding项目名称.gi ...