彦舜原创,优快云首发:接口中,继承与实现的关系、能否创建成员属性/方法、default与static在接口中的运用、多态如何被用于接口等

【Java基础知识 18】java接口和抽象类的异同,default关键字 Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 阅读详情
/**
 * 
 */
package cn.yanshun.interfaces;

/** 这个类用来测试接口的使用
 */
public class Test02_UseInterface {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//可以创建接口对象,进行测试吗??  ----报错,无法创建接口对象,Cannot instantiate the type Face
		//接口是个特殊的抽象类,抽象类不能创建实例化对象
		//Face f = new Face();
		
		//怎么测试接口呢??难道是通过创建子类对象,测试使用接口吗??  ----是的
		//报黄线:The value of the local variable s is not used
		Son4 s = new Son4();
		s.pmethod();
		s.love();
		//s.i = 1; ---- 报错:The final field Face.i cannot be assigned
		//s.i + s.s 不是标准语法----The static field Face.i should be accessed in a static way
		System.out.println(Face.i);
		System.out.println(Face.s);
		Face.hate();
		
		/**	通过以上代码可知:接口与子类间,既是继承关系,又是实现关系,或者说实现关系中包含了继承关系,实现是对继承的优化	*/
	}
}

//既然要测试接口的使用,需要你创建接口
interface Face{
	//创建接口的构造方法
	//报错:Interfaces cannot have constructors
//	public Face(){}
	
	//创建成员方法/属性
	//创建成员属性
	//报错:The blank final field i may not have been initialized
//	int i;
//	String s;
	/**	接口中,成员属性,在声明时,必须手动初始化,完成赋值。成员变量,必须在首次声明时初始化赋值,说明此成员属性,是一个常量。	*/
	int i = 0;
	String s = "今天有太阳";
	
	//创建成员方法
	//接口中的成员方法不能含有方法体
	//abstract method
	public void pmethod();
	
	//不是abstract method,而是default方法
	public default void love() {
		//这又是啥方法声明??
		
		System.out.println(i);
	}
	
	//不是abstract method,也不是成员方法,而是static方法
	public static void hate() {
		//这又是啥方法声明??
		
		System.out.println(s);
	}
}

//The type Son must implement the inherited abstract method Face.pmethod()
//abstract method Face.pmethod()抽象方法
//inherited继承
//子类、实现类
class Son4 implements Face{
	/**	----add unimplemented methods
		----make type Son abstract	*/

	@Override
	public void pmethod() {
		// TODO Auto-generated method stub
		System.out.println("今天天气正好:"+s+"/"+i);
	}
}
继承多态重写重载访问修饰符泛型、final/static、super/this、equals/==、构造器是否运行、深浅零拷贝、接口抽象类、record、函数式Bean/接口、斐波那契数列、冒泡、二分 多态的必要条件:继承,重写,父类引用指向子类对象。当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误(因为是父类引用指向子类对象,通过父类引用来调用方法);如果有,再去调用子类重写的同名方法;子类没有重写则调用父类自己的方法。 阅读详情

相关推荐

【Java基础知识 19】Java接口的作用和意义

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

学Java,找哪吒 2万+

A:LinkedList实现了List接口; B: AbstractSet实现了Set接口; C: HashSet继承自AbstractSet基类; D: WeakMap继承自 AbstractMap

List,Set,Map在java.util包下都是接口 List有两个实现类:ArrayList和LinkedList Set有两个实现类:HashSet和LinkedHashSet AbstractSet实现了Set A:LinkedList实现了List接口; B: AbstractSet实现了Set接口; C: HashSet继承自AbstractSet基类; D: We

菜鸟JAVA 2万+

【2023,学点儿新Java-21】Java中default的语法格式 | 父类私有的方法能被重写吗?| 详解:this的用法、super的用法 | new在创建对象和数组时分别做了什么?

本篇继续对Java中的关键字进行介绍。其中在Java的“关系”中,较为详细地介绍了Java中的extends、implements、instanceof等关键字以及它们的用法示例。当然了,这里仅仅是对它们进行初步的介绍,在后续教程中博主也会循序渐进,即会详细讲解它们的用法并给出清晰易懂的示例,请大家不要着急哦~

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 847

Java-Collection源码分析(十二)——Set、AbstractSet、HashSet和LinkedHashSet

一、set的集合框架 二、Set接口 Set接口除了从Collection接口继承之外,还添加了所有构造函数的约定以及add,equals和hashCode方法的约定。 public interface Set extends Collection { //返回此集合中的元素数(其基数)。 int size(); //如果此集合不包含元素,则返回true。

LUAJDC的博客 827

【智驾与大模型】端到端与多模态大模型的精彩之旅

智驾和大模型的回顾与展望。开头的笔者自述也说了些心窝子话,边缘计算的监管刻不容缓!

仿生实验室:从0到1,制作人脸表情交互机器人,记录过程,软硬件全部开源,与君共襄盛举! 1318

「大模型学习」(11)kv cache与vllm详解,一文读懂!

Key(键):表示上下文的特征。Value(值):表示上下文的内容。Query(查询):表示当前 token 的查询向量。AttentionQKVsoftmaxQKTdkVAttentionQKVsoftmaxdk​​QKT​V),每次生成一个新 token(比如下一个词),模型会再次查看之前的所有K和V,以计算当前 token 的注意力。问题:每次都重新计算之前的 K/V 很浪费!项目维度(简化)含义Q当前 token 的查询向量。

qq_43044037的博客 5405

Java语言-----封装、继承、抽象、多态、接口

Java的继承、多态、抽象、接口的详细讲解。继承的四种访问控制符、多态的转型、抽象的定义等等详细讲解。

tq02的博客 4216

电池保护板为什么采用NTC热敏电阻而不是PTC热敏电阻?

R25=10K,即环境温度25°时,阻值是10K),温度变化1°C,阻值相应地明显变化,温度响应很灵敏,也就能精准地反向换算出阻值对应的温度。另外,还有功率型NTC热敏电阻,其主要用在开关电源设计中,串联在市电输入上,抑制浪涌电流。电池保护板上的NTC热敏电阻(NTC一端接地,另一端接电池充电控制IC管脚),在电池温度上升时,NTC热敏电阻温度也会随之上升,从而NTC电阻值会下降,因此电池充电控制IC用ADC检测的电压值就降低,当检测到的电压值达到下限阈值时,电池充电控制IC就会停止对电池的充电或放电。

电子绿洲的博客 5626

Java8基础(1):接口中的default和static方法

1、Java8接口 常量 抽象方法 默认方法 静态方法 聊聊Java8接口中的default和static方法_zab635590867的博客-优快云博客_接口中的default方法和static方法 接口中的方法_sinat_34089391的博客-优快云博客_接口中的方法 java8中接口default、static新特性,与抽象类区别_zyq_2014的博客-优快云博客_抽象类default java中接口(interface)详解_sun_shine...

mingyuli的博客 1241

《炬丰科技-半导体工艺》用于半导体的RCA清洁技术

书籍:《炬丰科技-半导体工艺》 文章:用于半导体的RCA清洁技术 编号:JFKJ-21-1073 引言 RCA清洗技术是用于清洗硅晶圆等的技术,由于其高可靠性,30多年来一直被用于半导体和平板显示器(FPD)领域的清洗。其基础是以除去颗粒为目的的氨水-过氧化氢溶液组成的SC―1洗涤和以除去金属杂质为目的的盐酸-过氧化氢溶液组成的SC―2洗涤相结合的洗涤技术。SC-1洗涤的机理说明如下。首先,用过氧化氢氧化硅晶片的表面,用作为碱的氨蚀刻氧化硅,并通过剥离去除各种颗粒。此外,如图1所示,在pH 10.5附近的S

jfkj2021的博客 768

基于AMD AU15P FPGA的SLVS-EC桥PCIe设计方案分享

各位FPGAer周末愉快,今天熊猫君分享一个基于AMD AU15P FPGA的SLVS-EC桥PCIe设计方案。

haoxingheng的专栏 1445

【Java基础】接口与继承

(3)如果子类没有这个属性,就看父类有没有这个属性(如果父类有该属性,并且可以访问,就返回信息…(4)最终运行效果看子类(运行类型)的具体实现,即调用方法时,按照从子类(运行类 型)开始查找方法。接口就是约定一些方法,而这些方法的具体方法体由实现接口的类实现,形成一套规范的统一的方法体系。虽然构造器,代码块不能被继承,但是在创建子类实例的时候,会调用父类的代码块和构造器。(4)如果父类没有就按照(3)的规则,继续找上级父类,直到Object…当继承的方法和接口的默认方法相同时,调用继承的方法。

橙子的博客 1301

生信技能53 - WisecondorX自动化批量npz转换和reference构建

wiseconrdoX分析CNV适用于CNVseq、NIPT和WGS等项目。

LittleComputerRobot的博客 465

java接口中的default方法

在java8以后,接口中可以添加使用default或者static修饰的方法,在这里我们只讨论default方法,default修饰方法只能在接口中使用,在接口种被default标记的方法为普通方法,可以直接写方法体。 实现类会继承接口中的default方法 如果接口A中有default方法: public interface A { public default void a(){ ...

thlzjfefe的博客 439

ubuntu20.04屏幕亮度无法调节(亮度条调节无效)的简单靠谱解决方案及踩坑历程

0 前言   网上关于ubuntu系统亮度无法调节的问题的解决方法有很多,但是绝大部分并没有什么用(这也是我自己的亲身体会),或者并不靠谱。在遍尝各路方法过后,我终于解决了这一棘手的问题(毕竟最大亮度真的非常刺眼,无法长时间直视),在此记录一下踩坑历程以及最后的解决方案。 1 Naive方法   由于使用需要,最近在电脑原有的win10基础上安装了ubuntu双系统。我安装的是当前新版的ubuntu20.04.2.0,靠谱的安装教程可以参考这里。   之前师兄说双ssd安装双系统会有系统启动引导的问题出现,

zeeq的博客 4万+

YOLOv11-seg改进系列 | 引入CVPR2022 MetaFormer,零参数池化Token混合+StarReLU MLP,精度涨不掉速

本文提出了一种改进YOLOv11分割任务的C3k2_PoolingFormer模块,通过引入MetaFormer架构和Pooling Token Mixer,在保持模型轻量化的同时增强全局感受野建模能力。核心创新包括:1)使用零参数的AvgPool3×3差值作为Token Mixer,实现高效邻域信息聚合和局部对比增强;2)采用StarReLU MLP替代传统激活函数,提升非线性表达能力。改进后模型仅增加6.1%参数量,却能显著提升分割精度,特别适用于需要长程依赖建模的实例分割任务。该设计为轻量级视觉模型提

qq_44224801的博客 431

default关键字

default关键字default在Switch中的使用default在接口中的使用(jdk1.8之后)两个接口中默认方法冲突问题类与接口中定义了相同的方法 default关键字在Java中主要有两个用法,一个是在switch中执行,另一个是jdk1.8之后使用default关键字在接口中定义普通方法。 default在Switch中的使用 default会在case匹配失败后执行 int c...

日积跬步 774

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

《Java》抽象类和接口的区别

今天来研究一些之前学习遗留的问题,没有认真去解决到的问题,本博文的主题是总结一下抽象类abstract与接口interface 的区别

1 1136

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

java基础之接口

接口 interface 接口的定义 [访问权限修饰符] interface 接口名{ //接口成员 } 接口中可以定义的成员有: 方法 方法都是抽象方法 访问权限为public 属性 只能是常量,声明时同时赋值 访问权限为public public static final 接口的实现 关键字: implements //A 是接口 B的实现类 public class ...

up_10 129

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

interface接口

抽象类大多用于抽取相关子类的共用行为方法实现或者是共同成员变量,然后通过继承的方式达到代码复用的目的。接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到行为定义和业务实现分离的架构设计目的,粗接口的多实现以及多重继承等特性,在架构设计上更灵活, 易扩展。在抽象类中,抽象方法本质上是定义行为规范:规定父类中的抽象行为(抽象方法),要。Java的接口( interface )盱定义纯粹的抽象行为(方法)规范。一个类实现interface接口时,要求必须实现该接口中所有的抽象方法。

m0_74002833的博客 449

Java的抽象类和接口

🎉🎉🎉哈喽!!!大家好,这里是 我不是小明同学 🎆欢迎各位小伙伴关注➕点赞➕留言➕收藏 🎆我坚信努力奔跑才能与幸运不期而遇。 🎆🎉🎉🎉作者知识水平有限,若有什么错误或者需改进之处希望大家指出,若是你有更好的代码希望能给博主留言,博主希望能在优快云与各位一起进步。 目录 抽象类 抽象类语法 抽象类特性 接口 语法规则 接口使用 接口的特性 实现多个接口 接口间的继承 抽象类 在解决实际问题时,我们一般将父类定义为抽象类,需要使用这个父类进行继承与多态处理。 在..

qq_61139806的博客 820

全网最细java零基础学习就业课程教学之java基础篇7:面向对象3

java零基础就业

weixin_43841075的博客 333

Java--接口--JDK8新特性--详解/实例

本文介绍Java的接口知识。包括:JDK8新特性(default、static),匿名内部类。

IT利刃出鞘的博客 8188

JAVA8版本

开始我们也提到,interface 新增default和static修饰的方法,为了解决接口的修改与现有的实现不兼容的问题,并不是为了要替代abstract class。在 java 8 中专门有一个包放函数式接口java.util.function,该包下的所有接口都有 @FunctionalInterface 注解,提供函数式编程。在其他包中也有函数式接口,其中一些没有@FunctionalInterface 注解,但是只要符合函数式接口的定义就是函数式接口,与是否有。

存在,即合理 767

【JDK8】default

目录官方文档default static多个默认方法 官方文档 https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html http://cr.openjdk.java.net/~briangoetz/lambda/Defender%20Methods%20v4.pdf 接口可以有实现方法,而且不需要实现类去实现其方法。 Java 8中出现,接口添加default方法,不强制实现了该接口的类也实现这个新加的方法 效率高:在字节

weixin_43091333的博客 1007

封装(static的性质、代码块)

我们知道面向对象语言有三大特征:封装,继承,多态。在此之前我们也知道了什么是类和对象(一定要有这些基础知识,详情请看Java中的类和方法(方法重载)-优快云博客这一篇我们就来详细讲解封装和继承。为了更好的管理类,我们提出了一个包的概念,把多个类收集在一组,称为软件包。包其实就是文件夹下的一个类。在同一个工程中,允许存在相同名称的类,只要处在不同的包中即可。我们平时输入要用到Scanner这个类,用到这个类需要导包。//不导包只能这样指定使用//导入包以后就可以这样使用。

weixin_64132124的博客 1151
上一篇: 彦舜原创,优快云首发:Interface入门,及其几个特点详解
下一篇: 彦舜原创,优快云首发:面向接口编程思想,设计程序
彦舜
博客等级 码龄7年 2粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值