首页 > 编程语言 >java中的接口

java中的接口

时间:2024-04-20 14:45:51浏览次数:23  
标签:java service 实现 接口 抽象类 public

java中的接口

目录

特征

  1. 接口使用interface关键字

  2. 接口中的所有方法默认都是public abstract修饰

  3. 接口中所有的成员变量都是public static final修饰

  4. 接口没有构造方法,构造方法用于创建对象(接口没办法new对象),但是接口使用多态

  5. 实现接口的类必须要实现接口中的所有方法,如果不想实现接口中的所有方法,那么可以把该类设置为抽象类

  6. 接口和接口之间可以继承,并且支持多继承,类和接口是实现关系,并且一个类可以实现多个接口

  7. 与继承类似的,接口和实现类之间存在多态性

接口回调

先有接口的使用者,后有接口的实现者

interface USB {
    public void service();
}

class Computer {
    USB usb1;
    USB usb2;
    USB usb3;

    public void run() {
        System.out.println("电脑启动");
        if (usb1 != null) {
            usb1.service();
        }
        if (usb2 != null) {
            usb2.service();
        }
        if (usb3 != null) {
            usb3.service();
        }
    }
}

class Upan implements USB {

    @Override
    public void service() {
        System.out.println("U盘启动");
    }
}

class Test {
    public static void main(String[] args) {
        Computer computer = new Computer();
        computer.usb1 = new Upan();
        computer.run();
    }
}

接口和抽象类的异同

  1. 接口中的方法默认是抽象方法,在接口中不能有实现(java 8开始允许接口方法有默认实现,使用default关键字),抽象类可以有非抽象方法
  2. 接口中的变量默认是final修饰,抽象类则不一定
  3. 一个类可以实现多个接口,但是最多只能继承一个抽象类
  4. 一个类实现接口的话,需要实现接口中的所有方法,但是继承抽象类只需要实现抽象方法
  5. 从设计层面,抽象类是对象的抽象,是一种模板的设计,而接口是行为的一种抽象,是一种行为的规范。

总结

  • 关键字使用interface,方法都是抽象方法
  • 接口可以很方便的使用多态
  • 接口的性质与只有抽象方法的抽象类相似

标签:java,service,实现,接口,抽象类,public
From: https://www.cnblogs.com/ning23/p/18147684

相关文章

  • Java 集合进阶使用(List Map Set)
    CollectionCollection是其子集的父类,所以可以使用多态的规矩,比如:创建一个ArrayList对象,用Collection接收Collection<Integer>collection=newArrayList<>();注意:Collection为接口,不能直接创建对象,但可以利用其子类,使用Collection方法,就如上方代码一样Collection......
  • 【转载】Java函数式编程——为什么new Thread()中要用函数式编程
    面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。面向对象的思想:做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情.函数式编程思想:只要能获取到结果,谁去做的,怎么做的都不重要,......
  • Python与Java数据结构语法区别
    数组参考链接:CS61BPythonzeroedLst=[0,0,0]lst=[4,7,10]lst[0]=5print(lst[0])print(lst)print(len(lst))Javaint[]zeroedArray=newint[3];int[]array={4,7,10};array[0]=5;System.out.println(array[0]);System.out.println(Ar......
  • 挖数据平台的空号检测接口:识别实时手机号码中的空号问题
     在当今数字化的时代,手机号码已经成为了人们生活中不可或缺的一部分。然而,随着通信技术的不断发展,以及用户需求的增长,诸如手机号码质量问题的挑战也越来越明显。为了解决这个问题,挖数据平台推出了一项空号检测接口,旨在实时识别并过滤掉手机号码中的空号。该接口以大数据分析为......
  • java srpint boot 2.2.1 第二部份,锁机制和分页查询 以及统一返回结果格式,
    第二部份,引起锁机制的原理和解决方案: 测试环境搭建第一步先建一个数据库表用于模拟商品购买。CREATETABLEproduct(idINTAUTO_INCREMENTPRIMARYKEY,nameVARCHAR(255)NOTNULL,stockINTNOTNULL,versionINTNOTNULLDEFAULT0);第二步......
  • Google和Oracle关于Java的知识产权诉讼
    Google和Oracle关于Java的知识产权诉讼背景Oracle收购SUN之后立即对Oracle展开了诉讼.经历了多级法院的上诉和驳回.2021.4.5美国联邦最高法院判断.Google不侵权.无需赔偿Oracle提起的80亿美金的诉讼但是专利官司在美国科技史上影响很大.AMD跟Intel的关于x86......
  • [Java]volatile关键字
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18031966出自【进步*于辰的博客】启发博文:《Javavolatile关键字最全总结:原理剖析与实例讲解(简单易懂)》(转发)。参考笔记二,P73、P74.1。目录1、JMM规范2、并发编程的三......
  • GraalVM-云原生时代的JVM(Java)
    一、GraalVM是什么?GraalVM是Oracle开源的一款通用虚拟机产品,官方称之为UniversalGraalVM,是新一代的通用多语言高性能虚拟机。它可以运行多种编程语言,如Java、JavaScript、Python等,并提供了即时编译(JIT)和AOT编译(AOT)的支持。GraalVM还支持在不同语言之间互相调用,以及嵌入到其他......
  • LCD显示器 --- 8080接口 和 RGB接口 的区别
    主要介绍LCD显示的基本原理,涉及像素、分辨率、颜色模型、RGB888等格式、Framebuffer、8080接口、RGB接口。1.LCD显示出图片的基本原理LCD作为显示器,它的显示原理和图片是一样的。图片可以看作由一个一个点(即像素pixel)组成。每行有xres个像素,有yres行,则这个图片的分辨率(resol......
  • java spring boot 2 开发实战笔记
    本案例是java spingboot 2.2.1  第一步搭建环境:安装依赖由于我们公司项目是1.8环境不能乱,我现在自己的电脑是1.8环境,所以本次整理的boot代码也只能用1.8boot版本为:2.2.1,新建项目后,在xml文件中复制上以下代码xml配置,最精简运行起来的  需要配置一个数据库,8.0以......