首页 > 其他分享 >【一篇带你吃透接口】(详解版)

【一篇带你吃透接口】(详解版)

时间:2024-03-20 10:59:51浏览次数:30  
标签:implements 吃透 void 接口 class 详解 extends public

这里写目录标题

1.接口重要知识汇总

1.接口是使用inteface方法来修饰的;
2.接口当中不能有被实现的方法,只能有抽象类,两个方法除外:static修饰的方法,被default修饰的方法;
3.接口也是有相应的字节码文件;
4.里面所有的方法都是public的 ;
5.接口当中的抽象方法默认都是public abstract修饰的;
6.接口是不可以被new来实例化的 ;
7.类和接口之间的关系是通过关键字implement来实现的 ;
8.当一个类实现了接口类就必须重写接口当中的抽象方法 ;
9.接口当中的成员变量默认都是public static final修饰的 ;
10.当一个类实现一个接口之后重写这个方法的时候 方法前得加public ;
11.一个类可以通过extends来继承普通类或抽象类但只能继承一个类,同时也可以通过implements来实现多个接口接口之间用逗号隔开 ;
12.接口和接口之间可以用extends来操作他们之间的关系 通过extends来拓展自己的功能;

2.接口使用的注意事项

2.1重写的方法,子类的访问权限要大于等于父类

package Test;

public interface ITest {
    void testA();//接口当中的抽象方法默认都是public abstract修饰的;
}
 class TestDemo implements ITest {
     class testA() {//重写的方法,子类的访问权限要大于等于父类
   System.out.println("重写testAment()");
     }
 }

2.2顺序:先继承再实现

class  Dog extends Animal implements IRun{

3.接口为什么能解决多继承问题

此三个方法写在父类Animal中不好,因为不是所有的动物都具备这些功能

public void fly(){}
 public void run(){}
 public void swim(){}

由于java不能同时继承多个类,我们把这些类封装成了接口

interface  IFly{
    void fly();
 }
interface  IRun{
    void run();
}
interface  ISwim{
    void swim();
}
 

子类继承父类,实现多个接口

class  Dog extends Animal implements IRun{
 class  Frog extends Animal implements IRun,ISwim{
 class  Duck extends Animal implements IRun,ISwim,IFly{

4.类和接口之间的关系

1.类和接口之间的关系 implments实现
2.接口和接口之间的关系 extends拓展
例:拓展了,也是自己拥有了该功能,B接口不仅具备了B接口自己的功能,还具备了A接口的功能。

interface A{
 void testA();
 }
 interface B extends A{
 void testB();
 }
 
 class Test implements  B{
     @Override
     public void testA() {
         
     }

     @Override
     public void testB() {
         
     }

标签:implements,吃透,void,接口,class,详解,extends,public
From: https://blog.csdn.net/m0_64670207/article/details/136856363

相关文章

  • Vue3 Slot—插槽全家桶使用详解
    插槽是什么插槽slot就是子组件中提供给父组件使用的一个占位符,用<slot></slot>表示,父组件可以给这个占位符内填充任何模板代码,填充的内容会自动替换<slot></slot>标签。插槽被分为三种:匿名插槽、具名插槽、作用域插槽。1、匿名插槽没有名字的插槽就是匿名插槽,组件可以放......
  • qt http get和post非阻塞时区分调用接口
    qthttpget和post接口有阻塞和非阻塞两种实现。非阻塞的方式是信号槽关联,在槽函数中实现。实际项目中多个接口调用的话需要区分调用接口,然后根据接口解析json报文,我分享下我的方法。通过获取QStringurl=reply->url().toString();可以获取到调用的url,可以根据url来进行区......
  • 关于Redis缓存原理详解
    最近都没看Redis,现在回来温习下,现在从Redis的三大缓存开始重新探一探有多深有多浅(^▽^)  让我来开始知识的醍醐灌顶把!是时候表演真正的技术了。(哔哔哔哔….)  铁子们,看在这么卖力的份上,如果觉得本文对你有帮助的话,请动动你的小手,点个赞哟。接下来就开始我们的Redis的......
  • Redis 主从复制的原理详解
    文章目录:1、复制过程2、数据间的同步3、全量复制4、部分复制5、心跳6、异步复制复制原理1.复制过程复制的过程步骤如下:1、从节点执行slaveof命令2、从节点只是保存了slaveof命令中主节点的信息,并没有立即发起复制3、从节点内部的定时任务发现有主节点的信息,开始使......
  • 详解Redis的持久化RDB和AOF
    Redis的持久化是将内存中的数据同步到硬盘的过程具体来说,Redis支持两种主要的持久化方式:RDB和AOF。RDB(RedisDatabase)简介默认持久化方式RDB会将内存中的数据快照保存到磁盘上的一个二进制文件中。这个文件包含了Redis在某个时间点上的所有数据,包括键值对及其过期时间等......
  • dijkstra算法详解
    今天给大家讲解\(dijkstra\)图论最短路算法在讲解\(dijkstra\)算法之前,先来给大家讲解一下图论中的松弛操作。松弛,即\(relaxtion\),是一种编程学术语。举例说明,例如我们可以从某个机场坐飞机达到若干个机场,然后从这些机场出发,我们又需做火车前往若干个城镇。现在假设我们手里......
  • 项目中请求第三方接口踩坑记录
    问题代码@Slf4jpublicclassTestWechat{public<TextendsWxBaseReq,KextendsWxBaseResp>KsendV3(Tt,Stringmethod,Class<K>kClass){Kk=null;Stringbody=JSON.toJSONString(t);StringapiUrl="";......
  • Go语言的隐式契约:探索接口无声的实现
    在讨论Go语言的特性时,我们常常会提到一个独特之处:Go语言中并没有显式的implement关键字用于表明一个类型实现了某个接口。这一点与许多其他面向对象编程语言形成了鲜明对比,比如Java或C#中,实现接口需要明确声明。然而,Go语言采取了一种更加隐式的方式来处理接口和类型之间的关......
  • Go: 泛型及其应用详解
    在软件开发的世界里,泛型是一个强大的工具,它允许我们编写灵活且可重用的代码。对于我们这些追求成为软件架构师和系统架构师的开发者来说,深入理解并有效应用泛型是提升我们代码设计能力的关键一步。Go语言自1.18版本起正式引入了泛型功能,这一变化无疑给Go语言带来了更广阔的......
  • seq2seq项目详解
    一、seq2seq和encoder-decoder关系seq2seq是从解决问题的目的角度来说的,利用的框架是encoder-decoder 二、项目例子比如我们有两个文件letters_source.txt和letters_target.txt,他们行数一致,也就是我们的训练集合,他们每一行互应(这两个文件同一行彼此长度可以不一致:比如中......