首页 > 其他分享 >Day59 接口的定义与实现

Day59 接口的定义与实现

时间:2024-01-27 14:33:25浏览次数:31  
标签:name void 接口 Day59 String interface public 定义

接口的定义与实现

1. 接口介绍

普通类:只有具体实现
抽象类:具体实现(普通方法)和规范(抽象方法)都有!
接口:只有规范!(比抽象类还要抽象)自己无法写方法专业的约束!约束和实现分离:面向接口编程

接口就是规范,定义的是一组规则,体现了现实世界中”如果你是...则必须能...”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。

接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。

接口是面向对象的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如c++、java、c#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。

2. 关键字(声明用interface/继承用implement(s))**

声明类的关键字是class,

声明接口的关键字是interface (新建一个类后把class改成关键字 interface)!!!!!

继承接口用的关键字是implement(s)

3. 抽象类/普通类/接口 在idea中的不同图标显示

4. 代码

UserService.java

package com.oop.demo11;

//把class改成关键字 interface     ,接口都需要有实现类
public interface UserService {
   //接口中的所有定义其实都是抽象的public abstract
      // 如void run(String name);  //接口默认就是 public abstract void run(String name);
                               //public abstract可写 可不写

    //常量~ public static final
    int AGE = 99;    //接口默认就是public static final int AGE = 99;

//增删改查
    void add(String name);
    void delete(String name);
    void update(String name);
    void query(String name);
}

TimeService.java

package com.oop.demo11;

//class改成interface
public interface TimeService {
    void timer();
}

UserServiceImpl.java

package com.oop.demo11;

//抽象类 是子类通过extends去实现抽象类  有局限性 是单继承
//类通过关键字 implements 实现接口
//实现了接口的类,必须要重写接口的方法  通过快捷键Alt+Insert 点击implements 方法重写
//多继承~ 利用接口通过implements 可以实现多继承~ 用多个方法重写
public class UserServiceImpl implements UserService,TimeService { //implements +方法重写 实现多继承
    @Override
    public void add(String name) {

    }

    @Override
    public void delete(String name) {

    }

    @Override
    public void update(String name) {

    }

    @Override
    public void query(String name) {

    }

    @Override
    public void timer() {

    }
}

快捷键方法重写implements

按Alt+Insert 选择Implement Methods 方法重写

5. 总结接口作用**

接口作用:
1.约束
2.定义一些方法,让不同的人实现~
3.接口中的方法默认都是public abstract
4.接口中的常量默认都是public static final

5.接口不能被实例化~(跟抽象一样不能被new),接口中没有构造方法(都不是类哪来的构造方法)

6.关键字implements可以实现多个接口

7.必须重写接口中的方法

标签:name,void,接口,Day59,String,interface,public,定义
From: https://www.cnblogs.com/baixiaofan/p/17991401

相关文章

  • 1.接口和抽象类的区别
    接口(interface)和抽象类(abstractclass)是支持抽象类定义的两种机制。具体而言,接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的。而抽象类是可以有私有方法或私有变量的,如果一个类中包含抽象方法,那么这个类就是抽象类。在java语言中,可以通过把类或者类中的某些方法......
  • Salesforce 通过 Flow 调用外部接口
    1接口设置1.1被调用的接口调用外部接口需要先搭建好可以外网访问的WebAPI,我使用的是.NET6搭建的WebAPI,并开启了Swagger(用于将接口导入到Salesforce).1.2Salesforce接口鉴权设置在设置->安全性->远程站点设置里添加接口的地址,有端口就需要带上端口号.......
  • 为了生成latex如何在sympy中自定义向量函数?适用于自定义类的latex生成。
    在sympy.printing.Printer的_print函数中可以看到一个hook,使得对于每一个类都会尝试寻找对应的_print_{class}函数来处理,因此我们只要利用好这个hook就可以为自定义类创建latex生成逻辑,我试图创建了一个_print_BoldUndefinedFunction函数,但发现它捕获不到(其实是因为BoldUndefinedF......
  • 根据后端接口获取文件流下载Excel文件 分别通过GET和POST请求实现(★★★
    POST携带参数请求文件流并保存为Excel文件//payload携带的对象参数functiondownloadExcel(payload){letxhr=newXMLHttpRequest();xhr.open('POST','background/baseInfo/export',true);xhr.setRequestHeader('Content-Type','application/j......
  • WPF,ListView中的Item自定义靠左还是靠右
    Item中有属性来决定是左还是右,难点在于如何将ItemTemplate扩充占满整个宽度,这样子当界面缩放的时候,Item靠左或靠右也能随着移动,其实主要是下面的代码,设置ListViewItem的HorizontalContentAlignment属性为Stretch,铺满整个宽度,示例代码如下:<ListViewx:Name="LvmqttMsg"Ba......
  • 记windows自定义bat脚本自启动
    自定义Windows启动脚本简化版在本指南中,我们将使用一个简化的批处理文件(.bat)来演示如何创建自定义的Windows启动脚本。以下是一个基本的模板,您只需根据需要在:begin部分添加您的代码。 @echooffif"%1"=="h"gotobeginrem获取脚本路径set"scriptPath=%~dp0"......
  • 记一次生产接口慢的问题
    8月8号早上9点钟,业务反映页面加载不出来。查看数据服务器内存、cpu都正常查看应用服务器内存、cpu正常慢sql排查也未发现问题排查代码发现数据库连接池配置有点小再看了访问情况,发现当天的访问量多了不少。所以确定了问题就是这个配置问题,决定晚上发布来把配置改大。下午......
  • Flutter3 TV 一百行自定义实现 tabbar tabview 联动
    系统自带的tabbar焦点在TV端无法很好的使用使用card_swiper组件作为tabviewimport'package:card_swiper/card_swiper.dart';import'package:flutter/material.dart';voidmain()=>runApp(MyApp());classMyAppextendsStatefulWidget{constMyApp({su......
  • linux服务器,启动服务jar包后,tail查看日志会卡主几分钟后,日志才加载出来,且访问接口很容
    首先:先排除服务器资源不足问题,看程序启动分配内存是否充足等问题原因:DNS配置异常导致的问题,程序运行时会去跑这些域名解析解决方法:/etc/resolv.conf中namespace配置注释,配置注释后,不用运行其他命令,会立即生效,重启服务,可以看到日志会立即返回,且调接口会快速返回,不容易超时......
  • 华为云CCE Turbo:基于eBPF的用户自定义多粒度网络监控能力
    本文分享自华为云社区《华为云CCETurbo:基于eBPF的用户自定义多粒度网络监控能力》,作者:云容器大未来。基于eBPF的容器监控的兴起容器具有极致弹性、标准运行时、易于部署等优点,越来越多的客户选择使用容器来部署自己的服务,随着容器规模越来越大,容器间网络交互也越来越复杂。我们需......