zoukankan      html  css  js  c++  java
  • Java 接口

    接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

    本质上还是多态:

    1)多态的3大用法:

    1>接口引用指向实现类对象:

    2>接口引用作为方法的形参,来接收不同的实现类对象;

    3>接口类型作为方法的返回值类型,返回不同的实现类对象;

    1、接口,只包含常量和抽象方法;

    接口的变量,默认是:public static final(可以省略);

    接口的方法,默认是:public abstract (可以省略);

    2、接口的使用:

    Interface 关键字;

    A)接口类型的引用变量指向实现类对象;

    B)调用的方法必须是接口里定义,实现类实现的方法;

    C)实际指向的是哪个实现类对象,执行的就是哪个对象的方法;

    D)一个类即能继承父类,又能实现接口;

    E)一个类可以同时实现多个接口;

    F)一个接口继承另一个接口;

    G)一个接口同时继承多个接口;

    3、接口的好处:

    A)可以实现多继承;

    B)运用多态,面向接口编程;

    4、类和接口的区别:

    类和接口是同一级别的;

    类是“is a”语义,是一种,子类必须是父类的一种;

    接口是“has a”语义,有一种,实现类实现接口,实现类拥有一种接口里定义的功能;

    5、抽象类和接口的区别:

    抽象类是类,“is a”语义,接口是”has a”语义;

    抽象类是用来继承的,接口是用来实现的;

    抽象类有构造方法,接口没有构造方法;

    都不能创建自身的对象,都可以创建子类或者实现类的对象(多态);

    目的:设计和功能实现进行分离;功能实现的管理者,不关心功能的具体的实现;

    Java 8中关于接口的改进:

    Java 8中,你可以为接口添加静态方法和默认方法。从技术角度来说,这是完全合法的,只是它看起来违反了接口作为一个抽象定义的理念。

    静态方法:使用 static 关键字修饰。可以通过接口直接调用静态方法,并执行其方法体。我们经常在相互一起使用的类中使用静态方法。你可以在标准库中找到像Collection/Collections或者Path/Paths这样成对的接口和类。

    默认方法:默认方法使用 default 关键字修饰。可以通过实现类对象来调用。我们在已有的接口中提供新方法的同时,还保持了与旧版本代码的兼容性。

    比如:java 8 API中对Collection、List、Comparator等接口提供了丰富的默认方法。

    特点:

    1)静态方法和默认方法的访问修饰符默认是public,可以省略;

    2)默认方法可以被继承和重写,但静态方法不可以被实现类继承;

    接口中的默认方法:

    接口默认方法的“类优先”原则

    若一个接口中定义了一个默认方法,而另外一个父类或接口中又定义了一个同名的方法时

    选择父类中的方法。如果一个父类提供了具体的实现,那么接口中具有相同名称和参数的默认方法会被忽略。

    接口冲突。如果一个父接口提供一个默认方法,而另一个接口也提供了一个具有相同名称和参数列表的方法(不管方法是否是默认方法),那么实现类必须覆盖该方法来解决冲突

  • 相关阅读:
    JAVA闰年测试与解决非法输入
    Junit介绍与实现
    等价类划分方法的应用
    使用Visual Studio 2013进行UI自动化测试
    简谈软件测试
    【Software Project Management】Quizs
    White box testing
    peer review
    闰年问题
    热烈庆贺清明小长假的到来
  • 原文地址:https://www.cnblogs.com/zhangze-lifetime/p/11597472.html
Copyright © 2011-2022 走看看