接口的使用,接口中方法的定义,接口继承

TypeScript接口中的多继承,多实现以及接口继承类 接口的继承与实现: interface A{ save(o:any):void; select(); update(); delete(); } interface B extends A{ count():number; page(); } class User implements B { count(): n... 阅读详情

接口的定义

1.接口就是多个类的公共规范。

2.接口是一种引用数据类型。

3.如何定义一个接口:
public interface 接口名称{
接口内容
}
4.java 7中接口包含常量,抽象方法
java 8中额外包含默认方法,静态方法
java 9中额外包含私有方法。

接口使用的步骤

1.接口不能直接使用,如果要使用,必须有一个实现类来实现接口。
格式:
public class 实现类名 implements 接口名称{
…
}

2.接口的实现类必须重写接口中的所有方法。
实现:去掉abstract关键字,加上花括号补上函数体。

3.不能直接new一个接口的对象,要new一个实现类的对象进行使用。

4.如果实现类没有重写接口中所有的方法,漏一个或者没写,那么这个实现类自己必须是抽象类。

接口中抽象方法的定义

在任何版本的java中,接口都能定义抽象方法。
格式:
public abstract 返回值类型 方法名(参数列表);
注意:
1.接口中的抽象方法,修饰符必须是固定的两个关键字public abstract。

2.这两个关键字可以选择省略(可以写一个,也可以不写,也可以只写前不写后只写后不写前)。

3.方法的返回值类型,名称,参数列表可以随意定义。

接口中默认方法的定义

从java8开始,接口里允许定义默认方法。
格式:
public default 返回值类型 方法名(参数列表){
方法体
}
默认方法可以用来解决接口升级问题。(实现类重写了接口所有方法后,如果要在接口中新添加一个方法,则实现类报错(因为没有重写所有的方法))。

添加默认方法后,实现类代码不会报错,并可以通过实现类直接实现接口的默认方法或者重写接口的默认方法。

接口中静态方法的定义

从java8开始,接口中允许定义静态方法。
格式:
public static 返回值类型 方法名(参数列表){
方法体
}
调用静态方法可以直接 接口名.方法名 调用。
注意:不能通过接口实现类的对象来调用接口中的静态方法。

接口中私有方法的定义

从java 9开始,接口中允许定义私有方法。
这个方法不应该被实现类调用,应该只能被本接口内的方法调用,所以应该是私有化的。

1.普通私有方法,用来解决多个默认方法之间重复代码的问题。
格式:
private 返回值类型 方法名(参数列表){
方法体
}

2.静态私有方法,用来解决多个静态方法之间重复代码的问题。
格式:
private static 返回值类型 方法名(参数列表){
方法体
}

接口中常量的定义

接口中也可以定义成员变量,但是必须使用public static final三个修饰符修饰,从效果上看,这其实就是接口的常量(因为用了final修饰符)。
格式:
public static final 数据类型 常量名称 数据值;

注意:
1.三个修饰符可以省略,但是不写依然是public static final。

2.接口中的常量必须明确赋值,不能不赋值。

3.常量名建议完全大写,比如int NUM_OF_MY_CLASS = 12;。

总结

在java 9+版本中,接口的内容可以有:

1.成员变量其实是常量,格式:
[public] [static] [final] 数据类型 常量名称 = 数据值;
注意:
常量必须赋值,且赋值后不能改变。
常量名称要完全大写,用下划线分割。

2.接口中最重要的就是抽象方法,格式:
[public] [abstract] 返回值类型 方法名称(参数列表);
注意:
实现类必须重写接口里所有的抽象方法,除非实现类是抽象类。

3.从java 8开始,接口里允许定义默认方法,格式:
[public] default 返回值类型 方法名称(参数与列表){方法体}
注意:
默认方法也可以重写。

4.从java 8开始,接口里允许定义静态方法,格式:
[public] static 返回值类型 方法名称(参数列表){方法体}
注意:
应该通过接口名称调用,不能通过实现类对象调用接口的静态方法。

5.从java 9开始,接口里允许定义私有方法,格式:
普通私有方法:private 返回值类型 方法名称(参数列表){方法体}
静态私有方法:private static 返回值类型 方法名称(参数列表){方法体}
注意:
private方法只有接口自己才能调用,不能被实现类或其他类使用。

注意事项

类的继承父类和实现多个接口

1.接口中是不能有构造函数和静态代码块的。
例如:
public interface a{
static{
//错误写法
}
public a(){
//错误写法
}
}

2.一个类可以实现多个接口。但是要重写所有接口的所有抽象方法(抽象类除外)。
例如:实现类b实现了x,y两个接口,那么就要重写x y里所有的抽象方法。

3.如果x y两个接口里有重复的抽象方法,那么实现类b里只用重写一次该方法即可。

4.如果x y两个接口里有重复的默认方法,那么实现类b里必须要对有冲突的默认方法进行重写。(即方法体不同为冲突,冲突就要解决。)

5.如果x接口里的默认方法和b类的父类里的方法冲突,那么优先使用b类的父类中的方法。继承>接口实现

接口之间的多继承

1.类与类之间是单继承的,直接父类只有一个,但是接口与接口之间是多继承的,且一个类可以实现多个接口。
例如:
public class a extends b,c; //错误
public interface a extends b,c; //正确
public class a extends b implements c,d; //正确

2.多个父接口中的抽象方法如果重复,没关系的。
多个父接口中的默认方法如果重发,那么子接口必须重写,还要带着default关键字(因为还是接口里的默认方法)。

Java中接口的定义和使用 接口 1.1 概述 接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么 接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法 (JDK 9)。 接口的定义,它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并 不是类,而是另外一种引... 阅读详情

相关推荐

Ansys Zemax | 利用OpticStudio实现衍射光学元件(DOE)与超透镜(metalens)的高效建模与验证

本文详细介绍了如何利用Ansys Zemax的OpticStudio软件实现衍射光学元件(DOE)与超透镜(metalens)的高效建模与验证。通过混合建模策略、相位面等效建模法、POP与FDTD联合验证等多种方法,帮助工程师快速解决跨尺度仿真难题,提升设计效率与精度。文章还分享了实战案例与高级技巧,适用于AR、医疗内窥镜等应用场景。

weixin_29268331的博客 501

接口【二】接口方法的定义和使用

从Java8开始接口可以定义默认方法,基本定义格式publicdefault返回值类型方法名称(参数列表){方法体}ps接口当中的默认方法可以解决接口升级的问题。先new创建一个接口publicclassMyInterfaceDefault改为publicinterfaceMyInterfaceDefault即可将class文件改为Interface文件//抽象方法publicabstractvoidmethodAbs();}编写实现类A,new发现区别。...

猪脚王的博客 3007

STM32-TIM4-定时器中断

#include "project.h" #include "timer.h" //TIM4_Init(2000 ,72);//定时2ms /* 定时器中断的定时时间设定 定时器只需要配置时钟、TIM和NVIC即可 */ void TIM4_Init(u16 period, u16 prescaler) { NVIC_InitTypeDef NVIC_InitStructure; TIM_...

snaygo 6204

Java中接口中的方法定义规则

Java接口中的方法定义规则最近在做某个公司校招的笔试的时候,遇到了如下一个题:题目如下:(多选题)请选择以下接口定义正确的方法()A:public static void main (String[] args);B:private void test();C:public void test2();D:static void test3(){};正确答案为:C D。原因为:A没有提供默认实现,B

wojiushimogui的博客 3万+

UE4_SpeedTree Shader源码分析

目录 1.UMaterialExpressionSpeedTree::Compile 2.Compiler->SpeedTree 3.GetSpeedTreeVertexOffset 4.Scene中的SpeedTree应用 (Scene->UpdateSpeedTreeWind) 5.GetSpeedTreeVertexOffsetInner 由于之后做风场,也需要在S...

zzgyy123的专栏 2631

CST微波工作室端口设置保姆级教程:从波导端口到离散端口,手把手教你搞定S参数仿真

本文提供CST微波工作室端口设置的详细教程,涵盖波导端口和离散端口的选择与配置,助力工程师精准完成S参数仿真。通过微带线滤波器案例,详解端口尺寸、阻抗设置及常见问题排查,提升仿真效率与准确性。

weixin_42570296的博客 362

Java接口中方法的定义及使用

一:接口的使用 1.接口和类是并列的结构,使用interface来定义 2.定义接口中的成员 ①.JDK 7以前只能定义全局全局常量和抽象方法

qq_44116399的博客 2909

Polyworks宏脚本开发入门:5分钟搞定环境搭建与基础命令录制

本文详细介绍了Polyworks宏脚本开发的入门指南,包括环境搭建、基础命令录制和核心对象操作。通过5分钟快速启动开发模式,掌握自动化操作流程和脚本调试技巧,帮助工程师高效完成工业测量与三维检测任务。

weixin_29306875的博客 534

接口中方法详解

介绍了接口中可以包含的四种类型方法和其子类实现的注意点

在路上 4839

SPI 总线信号完整性与时序一致性测试

SPI总线测试的核心目标是验证其电气与时序行为是否满足芯片规格要求,确保通信可靠性

硬核科技 329

激光打标轴坐标计算分析

‌:基于坐标差的平方和开方运算,勾股定理将几何关系转化为代数计算,从而实现了从坐标到距离的精确转换‌12。直角三角形的应用从上图可以看到A,B,P三个点连起来就是一个直角三角形了。用勾股定理计算距离 C#有相关的方法直接传参数就可以了。很方便。

StevenChen的博客 311

Java接口如何定义带方法体的方法

default方法:提供默认实现,实现类可选择重写。static方法:通过接口名直接调用,无需实现类实例。这些特性增强了接口的灵活性,允许在不破坏现有实现的情况下扩展接口功能。

w2369110547的博客 664

【2022网易雷火】游戏研发笔试-AC代码及题目分享

3个小时,4道题目,雷火的题目不在于难,更在于对细节的把控和写大模拟的耐心,花了一个半小时,AC了3.85,直接交卷退了。第一题AC,第二题AC,第三题85%,第四题AC。下面分享一下大致的题意和对应的代码,就不多说了,最近很累(代码可能会有贴错的情况,如有望指正,感谢~)。 T1-小Y抽奖 题意 n行m列个奖励格子,每次抽奖消耗一个道具。每个格子奖励的数量有限且各不相司。每个格子被抽到一次,剩余的奖励数量-1。剩余的奖励数量为0时,则不会再抽到该格子。小Y抽了好多次,但一直没有抽到最想要的..

米莱虾 9266

接口的使用、接口内方法的定义、接口继承、接口的新特性

接口的使用、接口内方法的定义、接口继承、接口升级

qq_43686030的博客 626

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java 接口的定义、接口的成语、接口的实现、接口与类的多继承、JDK1.8后新增方法、使用接口的注意事项

接口的基本定义格式: public interface 接口名称{ ... } 接口当中可以包含的组成部分: 1.抽象方法 2.常量 3.默认方法(Java 8) 4.静态方法(Java 8) 5.私有方法(Java 9) 如何使用接口与实现类? 1.创建 接口名称 引用名 = new 实现类名称(); 2.调用 引用名.抽象方法名(参数); 注意: 1.(接口隔离)左边是接口类型...

七七的博客 310

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

泛型的理解与使用,以及自定义泛型类,接口,方法,在继承上的体现,通配符

泛型的理解 1.泛型的概念 所谓泛型,就是允许在定义类,接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例如:继承或实现这个接口,用这个类型声明变量,创建对象时确定(即传入实际的类型参数,也称为类型实参) 2.泛型的引入背景 集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个

weixin_41909719的博客 578

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java中如何定义接口_java中如何定义一个接口

使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:[修饰符] interface 接口名 [extends 父接口名列表]{[public] [static] [final] 常量; //全局常量[public] [abstract] 方法;  //抽象方法}说明:修饰符:可选,用于指定接口...

weixin_34727107的博客 5469

接口的定义和使用

接口是一个额外的功能,实现接口就具备该功能,不实现就不具备 接口:是引用数据类型的一种,是功能的集合(接口中一般定义的都是方法) 接口中不能定义变量,只能定义常量(很少使用) 定义接口使用也是.java文件;编译生成.class文件 定义接口使用关键字 interface 定义格式: 修饰符 interface 接口名{ 抽象方法;(JDK7) 重点 默认方法;(JDK8) 静态方法;(JDK8) 常量(很少使用) ...

weixin_44784393的博客 4009

接口,抽象类,继承

抽象类 包含有抽象方法的类;同时还可以包含普通方法和属性。 该类需要被子类继承实现其中的抽象方法才能使用,其中被private修饰的方法不能被继承,即使子类中写了该方法也不是重写; 普通类继承抽象方法时需要重写所有抽象方法,否则该子类也是抽象类; 使用方法时从定义类型到实际类型找,如果定义类和实际类型中都有,则使用实际类型的,但是如果实际类型中有而定义类型中没有,使用的时候就会报错; 使用

AEWW922的博客 482

接口的继承机制

接口继承允许一个接口继承另一个或多个接口,从而继承其方法声明。继承接口的类必须实现继承接口中所有的方法,确保所有行为都得到了具体的实现。接口可以继承多个父接口,从而实现类可以获得多种能力的组合。

小萌学习笔记 1632

Java接口继承和使用接口

一接口的继承 1点睛 接口支持多继承,一个接口可以有多个父接口,子接口扩展某个父接口,将会获得父接口里定义的所有抽象方法、常量。 一个接口继承多个父接口时,多个父接口排在extends关键字之后。 2代码 interface interfaceA { int PROP_A = 5; void testA(); } interface interfaceB { i...

实践求真知 1万+

Java基础(三):接口与继承

接口与继承

Justin_Andyson的博客 4511

java接口的定义与实现

java-接口定义创建接口抽象方法默认方法静态方法私有方法接口常量接口与继承接口的多继承Summary 定义 接口是一种公共的标准规范,是一种引用类型,最重要的内容就是其中的抽象方法。 public interface 接口名称{ //接口内容 } 换成关键字interface之后,编译生成的字节码文件仍然是:.java–>.class java 7版本,那么接口中可以包含有: 1.常量 2.抽象方法 java 8版本,那么接口中还可以包含有: 3.默认方法 4.静态方法 java 9版本,还可

weixin_46373361的博客 1151

接口与多重继承

在很多时候,常会听别人说,接口(interface)可以达到多重继承的效果,这是怎么回事?其实要讨论这个问题,首先您对于C++中多重继承要先有认识,新手看了书说接口可以达到多重继承,切莫人云亦云,尤其是没有学过C++的新手们,如果您对于C++多重继承想要有所认识,请先看看 多重继承(一)与 多重继承(二)。 Java不能多重继承,但为何说Java中可以使用接口(interface)来达到多

林信良(良葛格)的专栏 8419

类实现接口,接口的多实现,接口的多继承

类实现接口,接口的多实现与接口的多继承

m0_72786443的博客 2729

Java接口的定义和实现

定义接口 Java 接口的定义方式与类基本相同,不过接口定义使用的关键字是 interface,接口定义的语法格式如下: [public] interface interface_name [extends interface1_name[, interface2_name,…]] { // 接口体,其中可以包含定义常量和声明方法 [public] [static] [final]...

weixin_45743799的博客 4026
上一篇: 多态的使用,作用以及向上向下转型
下一篇: 有关final关键字的使用
wnnSam
博客等级 码龄16年 6粉丝 19原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值