首页 > 其他分享 >接口

接口

时间:2024-03-27 21:11:06浏览次数:25  
标签:name void 接口 class interface public

接口

1. 接口的意义

解决java不能多继承问题,一个类只能有一个父类 但是可以实现多个接口

查看代码
interface IFly {
    void fly();
}

interface ISwim {
    void swim();
}

interface IRun {
    void run();
}

class Animal {
    public String name;

    public Animal(String name) {
        this.name = name;
    }
}

class Dog extends Animal implements ISwim,IRun {
    public Dog(String name) {
        super(name);
    }

    @Override
    public void swim() {
    System.out.println(this.name + "正在用4条狗腿游泳");
    }

    @Override
    public void run() {
        System.out.println(this.name + "正在用4条狗腿跑");
    }
}

class Bird extends Animal implements IFly,IRun {
    public Bird(String name) {
        super(name);
    }

    @Override
    public void fly() {
        System.out.println(this.name + "正在用翅膀飞");
    }

    @Override
    public void run() {
        System.out.println(this.name + "正在用2条鸟腿跑");
    }
}

class Test {
    public static void funcRun(IRun iRun) {
        iRun.run();
    }

    public static void main(String[] args) {
        funcRun(new Dog("大黄狗"));
        funcRun(new Bird("布谷鸟"));
    }
}

 

2. 接口中的细节

1.  在接口中定义的成员变量 默认都是用public static final修饰的常量,接口中的抽象方法 默认都是用public abstract修饰的

 

2.  接口中的方法默认都是抽象方法 不能有具体的实现,如果要有具体实现 必须用default 或者 static修饰

interface Test {
    
    public default void test2() {

    }

}

 

3. 接口不能被实例化

interface Test {

    void test2();

}

class Main {
    public static void main(String[] args) {
        // 报错 !
        Test test = new Test();
    }
}

 

4. 实现接口的类,必须重写接口中所有的抽象方法

如果不重写接口中所有的抽象方法,加abstract设计为抽象类

interface IShape {
    void draw();
}

// 报错 !
class A implements IShape {

}

public class Test {
    public static void main(String[] args) {

    }
}
interface IShape {
    void draw();
}

abstract class A implements IShape {

}

public class Test {
    public static void main(String[] args) {

    }
}

 

5. 类与接口关系用implements 关联

查看代码
 interface IShape {
    void draw();
}

class Rect implements IShape {
    @Override
    public void draw() {
        System.out.println("画矩形");
    }
}

class Cycle implements IShape {
    @Override
    public void draw() {
        System.out.println("画圆圈");
    }
}

class Flower implements IShape {
    @Override
    public void draw() {
        System.out.println("画❀");
    }
}

public class Test {
    public static void func(IShape iShape) {
        iShape.draw();
    }

    public static void main(String[] args) {
        
        func(new Rect());
        func(new Cycle());
        func(new Flower());
    }
}

 

6. 接口与接口的关系用extends关联

查看代码
 interface IFly {
    void fly();
}

interface ISwim {
    void swim();
}

interface IRun {
    void run();
}

interface IAmphious extends ISwim,IRun {
    void test();
}

class Frog implements IAmphious {
    
    @Override
    public void swim() {
        
    }

    @Override
    public void run() {

    }

    @Override
    public void test() {

    }
}

 

标签:name,void,接口,class,interface,public
From: https://www.cnblogs.com/xumu7/p/18099755

相关文章

  • redis+aop实现接口防刷(幂等)
    幂等和接口防刷概念这两者其实是属于不同的场景但是在一些情况下,实现方式上有异曲同工之妙。防刷顾名思义,想让某个接口某个人在某段时间内只能请求N次。一般是对一些不发人员用脚本对接口进行大量请求,或者说利用脚本进行秒杀。幂等幂等的数学概念幂等是源于一种数学概念......
  • RT路由器 serial 口ppp multilink 绑定接口配置
    配置MutlilinkPPP捆绑,编号为1interfacemultilink1                   ipadd192.168.100.1255.255.255.0   pppmultilink                                ......
  • 【Postman如何进行接口测试简单详细操作实例】
    1、下载Postmanpostman下载地址:DownloadPostman|GetStartedforFree2、安装Postman(1)双击下载好的postman-setup.exe文件,进行安装postman工具(2)安装完成后,在桌面找到并打开postman软件,输入邮箱和密码进行登录,没有就新建注册一个账号,登录进入到postman首页。3、大......
  • Xilinx ZYNQ 7000+Vivado2015.2系列(十)MIO/EMIO再识,MIO的引脚“复用”,EMIO当作PS的接口
    前面我们介绍过EMIO,但是不详细。MIO是PS的IO接口,这个M代表的是Multiuse,也就是多用途,在下图中我们可以看到54个MIO连接这么多东西,必须得复用,所以当我们开发的时候需要的功能配置上,不需要的去掉,防止IO口被占用。板子用的是zc702。下面我们双击ZYNQ核:我们到MIO的配置里,把其......
  • 教你用Chrome 浏览器+Postman搞定接口测试
    如果把测试简单分为两类,那么就是客户端测试和服务端测试。客户端的测试包括UI测试,兼容性测试等,服务端测试包括接口测试。接口测试检查数据的交换,传递和控制管理过程,它绕过了客户端,直接对服务端进行测试。客户端测试与服务端测试的关系图:服务端非常复杂,就像下图的阿里核心链路图......
  • 免费体验翔云身份证实名认证接口!
    现如今,无论是银行开户、办理社保、购买保险、在线教育、电商购物等等的应用场景,都需要进行身份证的实名认证。随着人工智能技术的不断创新,身份证实名认证已经逐步实现了智能化、在线化。也正因如此,企业对于身份证实名认证接口的需求也在不断增多。翔云身份证识别与身份证实名认证......
  • go判断实现接口的方法 var _ Interface = (*Type)(nil)
    阅读源码过程中发现很多var_Interface=(*Type)(nil)写法,对于接口实现情况的判断十分优雅,而自己编写代码过程中鲜有涉及。var_InnerObjectWithSelector=(*PodChaos)(nil)var_InnerObject=(*PodChaos)(nil)其作用就是用来检测*Type是否实现了Interface接口,有多种形......
  • 记录一次通过aspnetboilerplate站点常见的abp框架,访问application层设定的既定接口,get
     1publicIServiceProviderConfigureServices(IServiceCollectionservices)2{3services.AddControllersWithViews(options=>4{5options.Filters.Add(newAbpAutoValidateAntiforgeryTokenAttribute());6});7}......
  • 百川仓配切量接口成长史
    背景百川专项是指物流统一打造企业级能力平台,战略上聚焦纯配、仓配类业务主线,以提升前台业务整体交付吞吐率为核心目标,支撑物流开放领域解决方案和标准产品的快速交付实施。计划以“百川”专项项目为契机,加速推动BP团队将ECLP中各自业务的单据和履约职能整理下沉到订单中心和各自......
  • 创建与启动线程之二(继承Thread类)(实现Runnable接口)
    1.概述java的JVM允许程序运行多个线程.使用java.lang.Thread来表示线程.一个线程都直接或间接的继承于Thread类,即每个线程的对象要么是Thread的实例,要么是其子类的实例.2.Thread类的特性每个线程都是通过某个特定的Thread对象的run方法来完成操作的,run()被称为线程执行体.......