接口(interface)

简介: 接口(interface)

接口(interface)概述

接口是类似抽象类的抽象化类型,自己不能实例化

接口就是一种公共的规范标准,只要符合规范标准,大家就可以通用
和Java里的抽象类类似,但是比抽象类更加抽象,接口内容要求比抽象类更苛刻

注意 : 每个类的默认父类是Object,但是可不能将接口和类混淆,Object类不是接口的默认父类


一、接口是什么?

接口:是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了抽象方法,静态常量,(在JDK8之后)接口里面又可以定义静态方法,与默认方法.
接口定义 : 接口的定义,它与定义类方法相似,但是使用interface关键字。它也会被编译成 .class文件,但一定要明确它不是类,而是另外一种引用数据类型。

public interface Animal{

                   //内容

}


二、接口与类的区别

  1. 接口不能用于实例化对象
  2. 接口没有构造方法
  3. 接口中所有的方法必须是抽象方法
  4. 接口中不能包含成员变量,除了 static 和 final 变量
  5. 接口不是被继承,而是被实现
  6. 接口支持多继承

三、接口与抽象类的区别

  1. 抽象类里面的抽象方法如果子类未实现,那么子类也是抽象类
  2. 接口里面也有抽象方法,子类实现抽象类,就必须实现父类所有的抽象方法,不然将该类定义成abstract类
  3. 接口实现的关键字是implements,而抽象是使用extends进行继承

4.在接口中,定义方法时候 public abstract默认存在, 定义成员时 public static final 默认存在
5.抽象类和接口 都不能被实例化,只有它的子类能继承或者实现来实例化
6.接口还可以继承父类,并且可以继承一个或多个,多个之间用逗号隔开
7.继承的多个父接口里面可能抽象方法名称一致,那么子类只需要实现一个
8.静态方法必须使用 接口名称 . 静态方法进行调用

9.默认方法必须使用子类 . 默认方法进行调用

# 四、 实现接口演示

这里定义一个A , B, C接口, 一个实现接口的类Test

这里演示通过类实现多接口

public interface A {
    
    void a();
}
public interface B {

    void b();
}
public interface C {

    void c();
}
public class Test implements A,B,C{

    @Override
    public void a() {

    }

    @Override
    public void b() {

    }

    @Override
    public void c() {

    }
}

这里演示通过接口继承,类实现单接口,间接实现多接口

public interface A extends B,C{

    void a();
}
public interface B {

    void b();
}
public interface C {

    void c();
}

public class Test implements A{

    @Override
    public void a() {

    }

    @Override
    public void b() {

    }

    @Override
    public void c() {

    }
}
相关文章
|
设计模式 开发框架 前端开发
项目开发中,真的有必要定义VO,BO,PO,DO,DTO这些吗?
存在即是合理的,业务复杂,人员协同性要求高的场景下,这些规范性的东西不按着来虽然不会出错,程序照样跑,但是遵守规范会让程序更具扩展性和可读性,都是前辈血淋淋的宝贵经验,为什么不用?
Web server failed to start. Port XXX was already in use.【完美解决方案】
Web server failed to start. Port XXX was already in use.【完美解决方案】
Web server failed to start. Port XXX was already in use.【完美解决方案】
|
7月前
|
存储 弹性计算 Linux
阿里云服务器购买流程及配置选择指南【新手友好手册】
阿里云服务器购买流程及配置选择指南【新手友好手册】阿里云服务器主要分为轻量应用服务器与云服务器 ECS 两类,选择时需结合实际应用场景,从实例类型、CPU 内存、公网带宽、存储配置四个核心维度展开,确保资源匹配需求且成本合理。购买阿里云服务器时,特价机型可通过官方活动页面直接选购,企业级高性能服务器或有特殊配置需求的场景,需通过云服务器 ECS 官方页面自定义购买,以下以云服务器 ECS 自定义购买为例,详细介绍流程步骤。
|
存储 监控 算法
确保大文件上传数据完整性和准确性的方法
【10月更文挑战第17天】通过以上多种方法的综合运用,可以有效地确保大文件上传数据的完整性和准确性,为用户提供可靠的上传体验。同时,随着技术的不断发展,还需要不断地探索和创新,以适应不断变化的需求和挑战。
什么是重载(Overload)和重写(Override) ?
重载:发生在同一个类中,方法名相同参数列表不同(参数类型不同、个数不同、顺序不同),与 方法返回值和访问修饰符无关,即重载的方法不能根据返回类型进行区分 重写:发生在父子类中,方法名、参数列表必须相同,返回值小于等于父类,抛出的异常小于等于 父类,访问修饰符大于等于父类(里氏代换原则);如果父类方法访问修饰符为private则子类中 就能是重写。
|
设计模式 前端开发 Java
SpringMVC基础入门及工作流程---全方面详细介绍
SpringMVC基础入门及工作流程---全方面详细介绍
806 0
|
Java
JAVA 端口被占用 报错解决方案:java.net.BindException: Address already in use: bind
JAVA 端口被占用 报错解决方案:java.net.BindException: Address already in use: bind
1419 0
|
存储 安全 数据库
Flask-Login 扩展中,如何安全地存储用户密码?
【10月更文挑战第4天】Flask-Login 扩展中,如何安全地存储用户密码?
|
消息中间件 前端开发 编译器
10种常见的软件架构模式简述
10种常见的软件架构模式简述
|
存储 数据管理 数据库
CRUD操作实战:从理论到代码实现的全面解析
【7月更文挑战第4天】在软件开发领域,CRUD代表了数据管理的四个基本操作:创建(Create)、读取(Read)、更新(Update)和删除(Delete)。这四个操作构成了大多数应用程序数据交互的核心。本文将深入讲解CRUD概念,并通过一个简单的代码示例,展示如何在实际项目中实现这些操作。我们将使用Python语言结合SQLite数据库来演示,因为它们的轻量级特性和易用性非常适合教学目的。
1834 2