java接口简介

简介: 1.1接口简介接口,在java中是一种引用数据类型,里面主要有常量、抽象方法(jdk及以前)、默认方法和静态方法(jdk8)、和私有方法(jdk9)。接口是一系列方法的声明,是一些方法的特征集合,一个接口只要方法的特征而没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现类的方法具有不同的功能。

1.2接口的格式


public interface 接口名称{
    //常量
    //抽象方法
    //静态方法
    //默认方法
    //私有方法


使用interface来声明一个接口。

里面包含常量、抽象方法、静态方法、默认方法、私有方法,最主要的还是里面的抽象方法。

需要一个实现类来实现接口当中的所有抽象方法。


抽象方法


抽象方法定义格式:

public interface 接口名称{
    public abstract void 抽象方法名称();
}

抽象方法使用abstract修饰,public abstract 可以省略,两个一起省略或者省略其中一个都是可以的(前期学习的时候建议不要省略),抽象方法没有方法体,


默认方法


默认方法定义格式:

public interface 接口名称{
    public default void 默认方法名称(){
        //方法体
    }
}

默认方法使用default关键字修饰,public可以省略不写,但default不能省略,默认方法主要给实现类(子类)覆盖重写或者调用。


静态方法


1.public interface 接口名称{
    public static void 静态方法名称(){
        //方法体
    }
}


静态方法使用static关键字修饰,public可以省略不写,静态方法只能接口来进行调用,不能通过实现类对象来调用,也不能被实现类所继承或者重写,静态方法只跟接口有关。


私有方法


public interface 接口名称{
    private void 私有方法名称(){
        //方法体
    }
    private static 私有方法名称(){
        //方法体
    }
}

私有方法分为:普通私有方法、静态私有方法。

私有方法使用private关键字修饰,供默认方法和静态方法使用。


1.3接口的实现


实现的概述


类与接口关系称为实现,即类实现接口,该类可以称为该接口的实现类,实现的动作与继承相仿,但实现类使用implements关键字,

实现类必须:

            1.实现接口当中的所有抽象方法【必须】

            2.继承或者重写接口当中的默认方法【可选】


public class 类名 implements 接口名称{
    //方法体
}


抽象方法的使用


定义测试类:

接口:
public interface LiveAble{
    //定义抽象方法
    public abstract void eat();
    puclic abstract void sleep();
}
实现类:
public calss Animal implements LiveAble{
    @Override
    public void eat(){
        System.out.println("吃东西");
    }
    @Override
    public void sleep(){
        System.out.println("睡觉");
    }
}
测试类:
public class InterfaceDemo{
    public static void main(String[] args){
        //创建子类对象
        Animal a = new Animal();
        //调用实现后的方法
        a.eat();
        a.sleep();
    }
}

实现类必须实现抽象类当中的所有抽象方法,如果没有实现接口当中的抽象方法,那么实现类就必须是一个抽象类,应为抽象方法所在的类必须是一个抽象类,


默认方法


定义测试类:

继承默认方法 代码如下:

接口:
public interface LiveAble {
    public default void fly(){
         System.out.println("天上飞"); 
    } 
}
实现类:
public class Animal implements LiveAble { 
    // 继承,什么都不用写,直接调用
}
测试类:
public class InterfaceDemo { 
    public static void main(String[] args) {
        // 创建子类对象 
        Animal a = new Animal(); 
        // 调用默认方法 
        a.fly();
     } 
}

覆盖重写默认方法 代码如下:

接口:
public interface LiveAble { 
    public default void fly(){ 
        System.out.println("天上飞"); 
    } 
}
实现类:
public class Animal implements LiveAble {
    @Override 
    public void fly() { 
        System.out.println("自由自在的飞"); 
    } 
}
测试类:
public class InterfaceDemo { 
    public static void main(String[] args) { 
    // 创建子类对象 
    Animal a = new Animal(); 
    // 调用重写方法 a.fly(); 
    } 
}
输出结果: 自由自在的飞

默认方法可以被实现类继承也可以被覆该重写。


静态方法


静态与.class 文件相关,只能使用接口名调用,不可以通过实现类的类名或者实现类的对象调用,代码如下:

接口:
public interface LiveAble { 
    public static void run(){ 
        System.out.println("跑起来~~~"); 
    } 
}
实现类:
public class Animal implements LiveAble { 
    // 无法重写静态方法 
}
测试类:
public class InterfaceDemo { 
    public static void main(String[] args) { 
        // Animal.run(); 
        // 【错误】无法继承方法,也无法调用 
        LiveAble.run(); // 
    } 
}输出结果: 跑起来~~~


私有方法


私有方法:只有默认方法可以调用。

私有静态方法:默认方法和静态方法可以调用。

如果一个接口中有多个默认方法,并且方法中有重复的内容,那么可以抽取出来,封装到私有方法中,供默认方法

去调用。从设计的角度讲,私有的方法是对默认方法和静态方法的辅助。同学们在已学技术的基础上,可以自行测

试。代码如下:

接口:
public interface LiveAble { 
    default void func(){ 
        func1(); 
        func2(); 
}
    private void func1(){ 
        System.out.println("跑起来~~~"); 
}
    private void func2(){ 
        System.out.println("跑起来~~~"); 
    } 
}


相关文章
|
2月前
|
JSON Java Apache
非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
169 3
|
2月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
160 57
|
24天前
|
存储 JavaScript Java
Java 中的 String Pool 简介
本文介绍了 Java 中 String 对象及其存储机制 String Pool 的基本概念,包括字符串引用、构造方法中的内存分配、字符串文字与对象的区别、手工引用、垃圾清理、性能优化,以及 Java 9 中的压缩字符串特性。文章详细解析了 String 对象的初始化、内存使用及优化方法,帮助开发者更好地理解和使用 Java 中的字符串。
Java 中的 String Pool 简介
|
2月前
|
Java
在Java中实现接口的具体代码示例
可以根据具体的需求,创建更多的类来实现这个接口,以满足不同形状的计算需求。希望这个示例对你理解在 Java 中如何实现接口有所帮助。
91 38
|
14天前
|
数据采集 JSON Java
利用Java获取京东SKU接口指南
本文介绍如何使用Java通过京东API获取商品SKU信息。首先,需注册京东开放平台账号并创建应用以获取AppKey和AppSecret。接着,查阅API文档了解调用方法。明确商品ID后,构建请求参数并通过HTTP客户端发送请求。最后,解析返回的JSON数据提取SKU信息。注意遵守API调用频率限制及数据保护法规。此方法适用于电商平台及其他数据获取场景。
|
19天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
46 6
|
2月前
|
Java API
Java中内置的函数式接口
Java中内置的函数式接口
27 2
|
2月前
|
Java
在Java中如何实现接口?
实现接口是 Java 编程中的一个重要环节,它有助于提高代码的规范性、可扩展性和复用性。通过正确地实现接口,可以使代码更加灵活、易于维护和扩展。
103 3
|
2月前
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
126 1
|
2月前
|
Java Android开发
Eclipse 创建 Java 接口
Eclipse 创建 Java 接口
35 1