JavaSE——面向对象高级二(4/4)-接口的其他细节-三个新方法(默认方法、私有方法、静态方法),接口的多继承

简介: JavaSE——面向对象高级二(4/4)-接口的其他细节-三个新方法(默认方法、私有方法、静态方法),接口的多继承

接口的其他细节——第一点JDK8以后是新增的三个接口内的方法,第二是接口的多继承,最后是了解一下接口使用时的注意事项。


三个新方法

注意:接口内的实例方法因为是对象的方法,而接口本身不能创建对象,所以需要通过实现类的对象来访问。

默认方法

  • 使用default修饰的接口内方法,且默认会被public修饰

可以拥有方法体,在接口内也相当于实例方法。

例如:

package user.interfaceDemo;
 
public interface A {
    default void test1(){ //等同于 public default void test1(){}
        System.out.println("默认方法");
    }
}

私有方法

  • 必须使用private修饰的方法(JDK 8 开始才支持的)

与默认方法一样,也可以拥有方法体,但不能被外部访问,只能在内部进行访问。

例如:

package user.interfaceDemo;
 
public interface A {
    default void test1(){ //等同于 public default void test1(){}
        System.out.println("==默认方法==");
        test2();
    }
 
    private void test2(){
        System.out.println("==私有方法==");
    }
}

静态方法

  • 必须使用static修饰的方法,默认会被public修饰
package user.interfaceDemo;
 
public interface A {
    static void test3(){
        System.out.println("==静态方法==");
    }
}

JDK8开始,接口中为啥要新增这些方法?


  • 增强接口的能力,更便于项目的扩展和维护
  • 例如某些情况下,一个接口被很多的类实现了,此时给接口添加一个新方法的话,所有实现了这个接口的类都要去一个一个地重写这个新方法;需求中如果只是单独的一个类或少数的类需要重写该方法,那么就可以使用这些新方法。

接口的多继承

  • 一个接口可以同时继承多个接口
public interface C extends B,A{
}

接口多继承的作用

  • 便于实现类去实现

例如:

interface B{
    void test1();
}
interface C{
    void test2();
}
interface D{}
interface E extends B,C{}
 
class c implements E{
 
    @Override
    public void test1() {
        
    }
 
    @Override
    public void test2() {
 
    }
}

使用接口的注意事项【了解】

  1. 一个接口继承多个接口,如果多个接口中存在方法签名冲突,则此时不支持多继承。
  2. 一个类实现多个接口,如果多个接口中存在方法签名冲突,则此时不支持多实现。
  3. 一个类继承了父类,又同时实现了接口,父类中和接口中有同名的默认方法,实现类会优先用父类的。
  4. 一个类实现了多个接口,多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可。

END



目录
相关文章
|
10月前
|
搜索推荐 数据可视化 数据挖掘
点晴OA系统:用户体验至上,操作简单易上手
在数字化转型的浪潮中,企业选择办公自动化(OA)系统时,除了关注功能强大与否,更看重系统的用户体验。一个操作复杂、学习成本高的系统,不仅会降低员工的工作效率,还可能影响企业的整体运营。点晴OA系统以“用户体验至上”为核心理念,致力于打造操作简单、易上手的办公平台,帮助企业快速实现高效办公。
208 1
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能质量检测与控制
使用Python实现深度学习模型:智能质量检测与控制 【10月更文挑战第8天】
874 62
使用Python实现深度学习模型:智能质量检测与控制
|
存储 关系型数据库 MySQL
MySQL基础入门:数据库操作全攻略
MySQL基础入门:数据库操作全攻略
1066 0
|
机器学习/深度学习 存储 人工智能
程序员必备的一些数学基础知识
作为一个标准的程序员,应该有一些基本的数学素养,尤其现在很多人在学习人工智能相关知识,想抓住一波人工智能的机会。很多程序员可能连这样一些基础的数学问题都回答不上来。以下文章会给你答案。
391 0
程序员必备的一些数学基础知识
|
13天前
|
数据采集 人工智能 安全
|
8天前
|
编解码 人工智能 自然语言处理
⚽阿里云百炼通义万相 2.6 视频生成玩法手册
通义万相Wan 2.6是全球首个支持角色扮演的AI视频生成模型,可基于参考视频形象与音色生成多角色合拍、多镜头叙事的15秒长视频,实现声画同步、智能分镜,适用于影视创作、营销展示等场景。
657 4

热门文章

最新文章