JAVA中extends 与implements有啥区别?

基于大疆TSDK与Pix4D的热红外数据工程化处理:从RJPG到温度正射影像的完整工作流 本文详细介绍了基于大疆TSDK与Pix4D的热红外数据工程化处理完整工作流。通过Python脚本自动化解析RJPG格式的热红外图像,提取并转换其中的原始辐射数据为包含真实温度信息的TIFF文件,再结合Pix4Dmapper进行批量拼接,最终生成可直接用于GIS分析的温度正射影像图。该流程解决了手动处理效率低下、参数校准复杂等难题,实现了从原始数据到定量分析成果的高效、准确、可重复生产。 阅读详情


1. 在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。
extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用
2.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口 来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了
比如
class A extends B implements C,D,E

===========================================================
implements
学了好久,今天终于明白了implements,其实很简单,看下面几个例子就ok啦~~
接口的一些概念
public inerface Runner
{
int ID = 1;
void run ();
}


interface Animal extends Runner
{
void breathe ();
}

class Fish implements Animal
{
public void run ()
{
System.out.println("fish is swimming");
}

public void breather()
{
System.out.println("fish is bubbing");
}
}

abstract LandAnimal implements Animal
{

public void breather ()
{
System.out.println("LandAnimal is breathing");
}
}

class Student extends Person implements Runner
{
......
public void run ()
{
System.out.println("the student is running");
}
......
}

interface Flyer
{
void fly ();
}

class Bird implements Runner , Flyer
{
public void run ()
{
System.out.println("the bird is running");
}
public void fly ()
{
System.out.println("the bird is flying");
}
}

class TestFish
{
public static void main (String args[])
{
Fish f = new Fish();
int j = 0;
j = Runner.ID;
j = f.ID;
}

}
接口实现的注意点:

a.实现一个接口就是要实现该接口的所有的方法(抽象类除外)。
b.接口中的方法都是抽象的。
c.多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口。
===========================================================
extends与implements的不同

extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重 继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了
比如
class A extends B implements C,D,E

//
一个类通过关键字implements声明自己使用一个或者多个接口。在类的声明中,通过关键字extends来创建一个类的子类。
class 子类名 extends 父类名 implenments 接口名
{...

}

===========================================================

A a = new B(); 结果a是一个A类的实例,只能访问A中的方法,那么又和A a = new A();有什么区别呢?
==========================================================
class B extends A
继承过后通常会定义一些父类没有的成员或者方法。
A a = new B();
这样是可以的,上传。
a是一个父类对象的实例,因而不能访问子类定义的新成员或方法。
==========================================================
假如这样定义:
class A{
int i;
void f(){}
}
class B extends A{
int j;
void f(){}//重写
void g(){}
}
然后:
B b = new B();
b就是子类对象的实例,不仅能够访问自己的属性和方法,也能够访问父类的属性和方法。诸如b.i,b.j,b.f(),b.g()都是合法的。此时 b.f()是访问的B中的f()
A a = new B();
a虽然是用的B的构造函数,但经过upcast,成为父类对象的实例,不能访问子类的属性和方法。a.i,a.f()是合法的,而a.j,a.g()非 法。此时访问a.f()是访问B中的f()
==========================================================
A a = new B(); 这条语句,实际上有三个过程:
(1) A a;
将a声明为父类对象,只是一个引用,未分配空间
(2) B temp = new B();
通过B类的构造函数建立了一个B类对象的实例,也就是初始化
(3) a = (A)temp;
将子类对象temp转换未父类对象并赋给a,这就是上传(upcast),是安全的。
经过以上3个过程,a就彻底成为了一个A类的实例。
子类往往比父类有更多的属性和方法,上传只是舍弃,是安全的;而下传(downcast)有时会增加,通常是不安全的。
===========================================================
a.f()对应的应该是B类的方法f()
调用构造函数建立实例过后,对应方法的入口已经确定了。
如此以来,a虽被上传为A类,但其中重写的方法f()仍然是B的方法f()。也就是说,每个对象知道自己应该调用哪个方法。
A a1 = new B();
A a2 = new C();
a1,a2两个虽然都是A类对象,但各自的f()不同。这正是1楼说的多态性的体现。

这类问题在《Java编程思想》上都讲的很清楚

让Claude连续写代码24小时会发生什么?揭秘长时运行”架构背后的工程逻辑与未来 AI长时运行实验揭示软件开发新范式 Claude Opus通过Harness框架24小时独立开发全栈应用的成功实验,展示了AI从辅助工具向异步协作者的进化。实验采用"上下文轮转"机制解决记忆管理难题,将任务拆解为微周期并通过文件系统同步进度。核心突破在于:1)TDD成为AI自治基石,200+测试用例确保开发不偏航;2)文件取代对话成为AI间高效沟通介质;3)开发者角色重构为需求定义和框架设计者。该实验证明,通过严谨的架构约束和验收标准,AI可完成复杂长周期任务,预示着软件开发将从手工作坊 阅读详情

相关推荐

[信号与系统]一阶与二阶连续时间系统和离散时间系统

定义:一阶连续时间系统由一阶线性常系数微分方程描述: dy(t)dt+ay(t)=bx(t) \frac{dy(t)}{dt} + a y(t) = b x(t) dtdy(t)​+ay(t)=bx(t)时间常数:时间常数 τ=1a\tau = \frac{1}{a}τ=a1​ 是系统响应速度的衡量指标。时间常数越小,系统响应越快。冲激响应:一阶系统的冲激响应是指数衰减或增长的形式。例如,对于一个单位冲激输入,响应为: h(t)=bae−at h(t) = \frac{b}{a} e^{-at} h(t)=

Andius的博客 2122

java关键字extend和implement

而通过"implements"关键字实现的接口要求类提供接口中定义的所有方法的具体实现,类必须遵循接口方法的签名。在"Main"类的"main"方法中,创建了一个"MyClass"对象,并调用了它的"print"方法,输出结果为"打印内容”。在"Main"类的"main"方法中,创建了一个"Dog"对象,并调用了它的"sound"方法,输出结果为"狗发出汪汪声”。在这个语法中,"MyClass"类同时继承了"ParentClass"类并实现了"Interface1"和"Interface2"接口。

u011425993的博客 1万+

IO多路转接 ——— select、poll、epoll

select是系统提供的一个多路转接接口。select函数的函数原型如下: 参数说明:参数timeout的取值:返回值说明:select调用失败时,错误码可能被设置为:fd_set结构与sigset_t结构类似,fd_set本质也是一个位图,用位图中对应的位来表示要监视的文件描述符。 调用select函数之前就需要用fd_set结构定义出对应的文件描述符集,然后将需要监视的文件描述符添加到文件描述符集当中,这个添加的过程本质就是在进行位操作,但是这个位操作不需要用户自己进行,系统提供了一组专门的接口,用

2021dragon的博客 7979

extends和implements的区别

简而言之: ① extends 继承类(没有声明为final或定义为abstract的类),implements 实现接口。 ② extends只能继承一个类,implements可以实现多个接口。 类与接口最大的区别,类中的方法有具体定义,而接口里的是空方法,就是没有具体实现。 接口如下所示: public interface IAccountService { pu...

King_crazy的博客 2223

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

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

qq_43044037的博客 5405

GPU运维面试题

【代码】GPU运维面试题。

u011220233的博客 700

说说java中extends与implements的区别

一、extends表示继承(扩展),只能继承不是声明为final或不是定义为abstract的类,并且只能继承 一个父类(不像C语言可以继承多个),继承后可以使用父类的方法,也可以重写父类的方法、写自己的方法。二、 implements表示实现,可以实现多个接口,一通过重写他们的方法去实现各种功能。实现注意:1、必须实现接口的所有方法(抽象类除外);2、接口中的方法都是抽象的一个类有继承父类、实现多个接口,写法:...

ls18802694089的博客 3744

基于IMU的纯惯性导航轨迹绘制实践与优化

本文深入探讨了基于IMU的纯惯性导航轨迹绘制实践。通过修改开源组合导航算法KF-GINS,屏蔽GPS更新并简化地球参数,实现了仅依赖IMU数据的轨迹解算。文章详细介绍了代码改造、轨迹可视化方法,并分析了误差累积的根本原因,为深入理解惯性导航原理与传感器融合的必要性提供了宝贵的实践经验。

ff678的博客 398

Java implements和extends的区别

Java implements和extends的区别 implements 关键字implements是一个类,实现一个接口用的关键字,它是用来实现接口中定义的抽象方法。实现一个接口,必须实现接口中的所有方法。使用 implements 关键字可以变相地使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔) 注意点: 接口可以被多重实现(i...

weixin_41924879的博客 6111

【STK】手把手教你利用STK进行导弹和反导仿真02 - STK/MMT模块01 导弹任务分析工具概述

种工具:导弹设计工具(Missile Design Tool,MDT )、导弹飞行工具(Missile Flight Tool,截弹,或者用内置拦截弹编辑器创建的个性化的拦截弹, IFT 能够对 ―一对一 ‖动能拦截。导设置系统参数, 并对其有效性进行验证, 画性能图,保证该设计是可行的。(SAIC)公司联合开发研制,极大扩展了 STK 原有的导弹对象的功能,能够精确仿真。IFT 能够对拦截飞机、 导弹、卫星等目标进行仿真和分析。(2)推进系统参数,包括推力,比冲,秒流量,推力持续时间,喷嘴出口面积,

weixin_44184852的博客 1878

RT-DETR改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进RT-DETR颈部网络

本文记录的是利用颈部结构优化RT-DETR的目标检测网络模型。利用改进后的颈部网络,通过跳层连接,避免了在进行反向传播时的梯度消失问题,并且引入跨尺度连接,可以实现不同级别和层次的特征充分融合,获取足够的高层语义信息和低层空间信息交换,从而在大规模变化场景下提高检测性能。GIRAFFEDET: A HEAVY-NECK PARADIGM FOR OBJECT DETECTION-GFPN包含了上述的跳层连接(dense-link和log2nlog _{2} nlog2​n-link)以及跨尺度连接(Quee

Limiiiing的博客 2229

Java中extends与implements深度解析:继承与接口实现的本质区别

Java面向对象编程中,extends和implements是核心关键字,分别用于类继承(单继承)和接口实现(多实现)。extends建立"is-a"关系,实现代码复用和层次化分类;implements定义行为契约,支持多态和低耦合设计。关键区别在于:类只能继承一个父类但可实现多个接口,继承耦合度高而接口耦合度低。典型应用场景包括明确父子关系时用继承,需要多重行为或多态时用接口。Java 8后接口支持默认方法,需注意多重继承冲突问题。

m0_66884848的博客 2941

【全局路径规划地图算法】Voronoi路径规划探索(附C++代码)

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对Voronoi路径规划探索做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 2242

JAVA中extends 与implements有啥区别

JAVA中extends 与implements有啥区别? 1. 在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。 extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 2.extends是继承父类,只要

每天问问自己,你今天努力了吗? 846

老版QQ原生表情gif动态

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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JAVA中extends 与implements区别

JAVA中extends 与implements有啥区别?1. 在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用2.extends是继承父类,只要那个类不是声...

weixin_30325793的博客 86

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

浅谈java中extends与implements的区别

Extends可以理解为全盘继承了父类的功能。implements可以理解为为这个类附加一些额外的功能;interface定义一些方法,并没有实现,需要implements来实现才可用。extend可以继承一个接口,但仍是一个接口,也需要implements之后才可用。对于class而言,Extends用于(单)继承一个类(class),而implements用于实现一个接口(interface)

轻锋的专栏 3543

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java中extends与implements的区别

java中extends与implements的区别浅谈 1. 在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。 extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 2.extends是继承父类

凌凌小博客 325

【Java】Java extends和implements区别和用法

Java extends和implements区别和用法 Java代码中的extends和implements让我感到很迷惑,现在终于弄明白它们之间的区别和用法了。 //定义一个Runner接口 public inerface Runner { int ID = 1; void run (); //定义一个接口Animal,它继承于父类接口Runner interface Animal extends Runner { void brea...

南方有乔木的博客 430

java中implements是什么意思_Java中implements和extends的区别

看到java中很多类有使用implements和extends,那么这两种用法有哪些区别呢,今天我们来分析一下。简单说:1.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,2.Java中不支持多重继承,但是可以用接口来实现,这样就要用到implements,3.继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了 ,比如 ...

weixin_39926749的博客 8704

Java:extends 和 implements 的区别

(1)extends与implements的不同 1、在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。 extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 2、extends是继承父类,只要那个类不是声明为 final 或者那个类定义为 abstract 的就能继承,Java中不支持多重继承,但是可以用...

Yummy的博客 2529

Java中的extends和implements区别

一、含义 1、extends 用于继承父类,只要那个类不是声明final或者定义为abstract就能继承。如: class A{ int i; void f(){ //此方法实现代码 } } class B extends A{ int j; void f(){ //此方法实现代码,重写了父类的同名方法 ...

小宇飞刀的BLOG 981

【Java】extends和implements区别

extends和implements区别 extends与implements的不同 1、在类的声明中,通过关键字extends来创建一个类的子类。 一个类通过关键字implements声明自己使用一个或者多个接口 extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法 implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 2、extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承 Java中不支持多重继承,

Milk~每天分享一点点,技术进步一点点 722

java中extends和implements的区别

1.在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。extends是继承某个类,继承之后可以使用父类的方法,也可以重写父类的方法;implements是实现多个接口,接口的方法一般为空的,必须重写才能使用2.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的...

alimjanabay6512的博客 341

java中implements与extends的区别

1. 在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。 extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 2.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就

liwei405499的专栏 469

Java implements extends 的区别

一直搞不明白 Java 中为什么要使用 implements 和 extends 来实现不同类型的继承,以至于我过段时间就会忘记这两种有啥区别,这很重要吗? 1 区别概述 extends 在英文翻译上是使伸长;扩大;扩展;延长;使延期;扩大…的范围(或影响) implements 表示使生效;贯彻;执行;实施。 所以我们之间从翻译的字面意思理解,extends 是类的延长、扩展(除了 final ...

slave2的专栏 166
上一篇: java对象持久化
下一篇: java ObjectOutputStream 的用法详解
zi_jun
博客等级 码龄18年 109粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值