说下Interface的用法【转】

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

1.接口的概述

主要是使用接口来拓展定义类的功能,可以弥补java中单继承的缺点。

2.接口的定义格式

interface 接口名{

   属性
   抽象方法

}

接口的体验

interface Inter
{
	int num = 6;  可以定义属性与方法。
	void show();
}

注意:

 接口中的所有属性 默认的修饰符是  public static final。

 接口中的所有方法 默认的修饰符是  public abstract。

3.接口的特点

(1) 类实现接口可以通过implements实现,实现接口的时候必须把接口中的所有方法实现,一个类可以实现多个接口。

(2)接口中定义的所有的属性默认是public static final的,即静态常量既然是常量,那么定义的时候必须赋值。

(3)接口中定义的方法不能有方法体。接口中定义的方法默认添加public abstract

(4)有抽象函数的不一定是抽象类,也可以是接口类。

(5)由于接口中的方法默认都是抽象的,所以不能被实例化。

(6) 对于接口而言,可以使用子类来实现接口中未被实现的功能函数。

(7)如果实现类中要访问接口中的成员,不能使用super关键字。因为两者之间没有显示的继承关系,况且接口中的成员成员属性是静态的。可以使用接口名直接访问。

(8) 接口没有构造方法。

interface A{
	int a=12;
	int getA();
}
 
interface B{
	int b=10;
}
 
public class Demo1 implements A,B{
 
	@Override
	public int getA() {
		// TODO Auto-generated method stub
		return 0;
	}
}

4.接口与接口,类之间的关系

(1) 大家之前都知道类与类之间的关系继承,那么接口与类之间又是怎样子的关系呢?接口与类之间是实现关系。非抽象类实现接口时,必须把接口里面的所有方法实现。类实现接口用关键字implments,类与接口之间是可以多实现的(即一个类可以实现多个接口)。

interface Eraser {
	public static final String color = "白色";
	public abstract void clean();
}
class Pencil implements Eraser {
	String name;
	Pencil() {
	}
	Pencil(String name) {
		this.name = name;
	}
	void write() {
		System.out.println("写字");
	}
	@Override
	public void clean() {
		System.out.println("涂改...");
	}
}

分析:

原本铅笔没有涂改功能的,但是一旦实现了Eraser接口做了实现,那么就具备了涂改功能,那么接口的作用则是拓展功能。

(2)接口与接口之间的关系式继承

interface A{
	public void show();
}
interface B{
	public void print();
}
interface C extends A,B{
	
}

接口与接口之间的关系是继承,接口可以多继承接口.

 

总结:

  • 类与接口之间关系: 实现关系。 
  1. 重点内容非抽象类实现一个接口时,必须要把接口中所有方法全部实现。 
  2. 抽象类实现一个接口时,可以实现也可以不实现接口中的 方法。 
  3. 一个类可以实现多个接口 。

 

  • 接口与接口之间关系: 继承关系。
  1. 类与接口是可以多实现的,接口与接口是可以多继承的。
  2. 一个接口是可以继承多个接口的。

 

这里经常进入到面试题,这篇说的比较清楚,自己总结一下

https://blog.csdn.net/qq_34944851/article/details/52928628

理解cmake 中 PRIVATE、PUBLIC、INTERFACE 的含义和用法 这样,libA 就不会链接到 libB,但是如果有一个可执行文件 app,它依赖于 libA,那么它会自动链接到 libB,并且可以使用 libB 的功能。这样,libA 就会链接到 libB,并且如果有一个可执行文件 app,它依赖于 libA,那么它也会自动链接到 libB,并且可以使用 libB 的功能。这样,libA 就可以链接到 libB,但是如果有一个可执行文件 app,它依赖于 libA,那么它不会自动链接到 libB,也不能使用 libB 的功能。 阅读详情

相关推荐

UVM interface clocking 用法

1:知识背景载自[彩虹糖带你入门UVM] 第1节 验证组件之接口_信号 (sohu.com)https://www.sohu.com/a/291199851_778637 2:问题描述:在现有testbeach的环境中,原有的a.if中定义了 名为cb的clocking,然后在monitor中,先wait到cb.en有效,再打4拍再去采集cb上的信号,方式为@(posedge vif.clk);采集来的cb.dbgquasel信号计算会得到BUS信号,因此,monitor会在repeat(1) @(vi

xiamor的博客 2700

【Java原理系列】interface接口定义原理用法示例详解

一个接口声明由修饰符、关键字`interface`、接口名称、以逗号分隔的父接口列表(如果有的话)和接口体组成。

wang2leee的博客 676

CMAKE_step3:库的interface用法需求

Interface 用法需求

追赶时代的博客 783

JAVA中interface接口的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、interface是什么?二、关于interface的使用1.接口的格式代码例子12.用登录方法具体实现代码例子2:抽象类和接口之间的区别总结 前言 随着面向对象思想的发展,类的使用越来越方便,但是有时候类却不能实现对于方法的抽象,只能对于自己的属性的抽象。(所谓抽象简单理解为没有具体的实现)于是我们便在java语言中引出了一种接口的方式(interface)。(以下内容基于JAVA语言) 提示:以下是本篇文章正文内容.

ironjam的博客 1万+

interface(接口)的使用

与抽象类的异同 抽象类:模型上作规范;接口:功能上作规范 相同点: 都可以生成class文件 都不能具体化(不能实例化对象) 都可以调用Object的所有方法(继承性-Object是老祖宗) 都可以作为引用类型(多态应用) 不同点: 接口中定义的属性是公开的静态常量 默认加:public static final 接口中定义的方法为公开的抽象方法 默认加:public abstract 接口中不能有构造方法,没有静态代码块和动态代码块

qq_54254228的博客 1301

interface使用

1interface接口 在GO语言中的interface,只需要记住以下三点: interface是方法声明的集合。 任何类型的对象实现了在interface接口中声明的全部方法,则表明该类型实现了该接口。 interface可以作为一种数据类型,实现了该接口的任何对象都可以给对应的接口类型变量赋值。 注意: a:interface 可以被任意对象实现,一个类型/对象也可以实现多个i...

够浪 1785

5分钟学会interface(纯标题党)

介绍了golang中的interface,以及断言和发射。

weixin_60214397的博客 1221

一篇文章清楚 golang之interface

其实通过空接口保存数据,从效率层面来是比较慢的,如果参数类型确定,肯定是对应的类型比较合适,所以见多一些为了拓展性和兼容性,全部都是interface类型的参数,你怎么看?

m0_53917795的博客 1421

proto中关于使用interface{}的用法

proto中关于使用interface{}的用法

weixin_49369316的博客 2571

interface中modport和clocking

interface是UVM验证过程中的一个重要的组件,主要起到连接测试用例与DUT的作用,具有简化代码,易于修改等特点。本文主要介绍interface中的modport和clocking的用法。modport和clocking都是interface组件中的块,主要用于对信号进行分组和同步采样。本主要总结了modport和clocking的基本用法,同时实战演示了interface用法,以及在uvm环境中的传递方式。

hh199203的博客 7471

sv interface高级用法

1、interface: 1、clocking block clocking规定了信号之间的时序关系。 2、modport modport明确了站在不同的角度对应信号的输入输出方向。 2、interface中定义task和function task read_memory(input logic [7:0] raddr, output logic [7:0] ...

weixin_30553065的博客 2799

CMake中的PUBLIC、PRIVATE 和 INTERFACE用法

PRIVATE:只对目标自身生效,不传播。PUBLIC:对目标自身和依赖目标都生效。INTERFACE:对目标自身不生效,但传播给依赖目标。在命令中,PUBLICPRIVATE和INTERFACE这三个选项并不是必须的。如果你没有指定这三个选项中的任何一个,CMake会默认使用PRIVATE。PUBLIC:链接的库及其包含目录和编译选项对目标及其依赖项可见。PRIVATE:链接的库及其包含目录和编译选项仅对目标可见,不对依赖项可见。INTERFACE

我的博客 1081

java中interface关键字,Java中interface关键字的用法

Java中interface关键字的用法发布时间:2020-06-24 18:25:20来源:亿速云阅读:112作者:元一这篇文章将为大家详细讲解有关Java中interface关键字的用法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Java中定义接口的关键字是“interface”。“interface”是面向对象编程语言中接口操作的关键字,功能是把所需成员...

weixin_31297157的博客 878

go interface 基本用法

Go 中的接口跟我们常见的编程语言中的接口不太一样,go 里面实现接口是不需要使用implements关键字显式声明的,go 的接口为我们提供了难以置信的一系列的灵活性和抽象性。接口本质是一种自定义类型。(跟 Java 中的接口不一样)接口是一种特殊的自定义类型,其中没有数据成员,只有方法(也可以为空)。接口是完全抽象的,不能将其实例化。然后,对于接口类型变量,我们可以把任何实现了接口所有方法的类型变量赋值给它,这个过程不需要显式声明。例如,假如Bird实现了Fly。

rubys_的专栏 1475

go interface切片_看看源码 —— Go语言Interface研究

源码源码基于go v1.13go的interface有两种,eface和iface// $GOROOT/src/runtime/runtime2.go type eface struct { _type *_type data unsafe.Pointer } type iface struct { tab *itab data unsafe.Pointer...

weixin_34552166的博客 1538

TS-interface用法

它就像是一个只有参数列表和返回值类型的函数定义。参数列表里的每个参数都需要名字和类型。看到这里,或许有人会觉得interface和type有啥区别吗?为了使用接口表示函数类型,我们需要给接口定义一个调用签名。

weixin_43484007的博客 4507

【TS】interface 接口用法

当一个对象类型被多次使用时,一般会使用接口(interface)来描述对象的类型,达到复用的目的。

qq_45677671的博客 6027

silent-interface(OSPF)接口静默

命令功能 silent-interface命令用来禁止接口接收和发送OSPF报文。 undo silent-interface命令用来恢复接口接收和发送OSPF报文。 缺省情况下,允许接口收发OSPF报文。 命令格式 silent-interface { all | interface-type interface-number } undo silent-interface { all | interface-type [ interface-number ] } 参数明 参数 参数明 取值

WFlySky的博客 2万+

[golang]-interfacestring

导语:使用将gitlab中某个项目的分支提取出来后返回的是interface类型。希望换成string后存入数据库。 interface string 代码是抄来的~ // Strval 获取变量的字符串值 // 浮点型 3.0将会换成字符串3, "3" // 非数值或字符类型的变量将会被换成JSON格式字符串 func Strval(value interface{}) string { // interface string var key string if value ==

爷来辣的博客 2万+
上一篇: ElasticSearch——QueryBuilders操作记录
下一篇: MVC设计模式的理解
draapple
博客等级 码龄9年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值