java基础(三)——多态

部署与可视化系统:移动端落地保姆级教程:YOLOv8 转换为 NCNN 并封装进 Android App 调用摄像头实时检测 本文介绍了在移动端部署YOLOv8模型的最佳实践。通过实测数据对比,采用NCNN框架在骁龙865设备上可实现35+FPS的实时推理性能。文章详细分析了NCNN相比TFLite、MNN等框架的优势,包括更高的ARM CPU性能、更优的Vulkan GPU加速和更小的模型体积。同时提供了从PyTorch模型到NCNN格式的完整转换流程,包括FP16优化和INT8量化方法,并重点解析了YOLOv8特有的输出格式处理要点。建议开发者先在Python环境验证NCNN推理流程,再部署到Android平台,以确保最佳性能 阅读详情

1.什么是多态

java多态指的是用基类的引用指向子类的对象。也就是编译时和运行时指向的对象不一样,编译时指向父类,运行时指向子类。

这里的多态一般是指方法的多态,对象的实例变量不具备多态性。

package test;

class Fathers{
	
	public String name = "父类";
	//定义一个父类的run方法,因为是public的,会被子类的同名run方法覆盖
	public void run() {
		System.out.println("父类的run方法");
	}
}

class Sons extends Fathers{
	
	public String name = "子类";
	
	//覆盖父类的run方法
	@Override
	public void run() {
		System.out.println("子类的run方法");
	}
}

public class PolDemo01 {

	public static void main(String[] args) {
		//编译时,f是Fathers类型的;
		//运行时,f是Sons类型的
		//这里是Sons向上转型为Fathers,由程序自动完成
		Fathers f = new Sons();
		f.run();//这里将调用子类的run方法——方法多态
		System.out.println(f.name);//这里输出的是父类的name——实例变量不能多态
	}
}
//输出:
子类的run方法
父类


2.多态用在哪里

一般用在方法的参数和方法返回类型中。


package test;

interface USB {
	public void start();

	public void run();

	public void stop();
}

// USB接口工作依赖于具体的电脑
class Computer {

	// USB接口作为参数,动态指定具体的USB实现类,实现多态
	public void work(USB u) {
		u.start();
		u.run();
		u.stop();
	}
}

// U盘,实现USB接口
class UDisk implements USB {

	@Override
	public void start() {
		System.out.println("U盘开始工作");
	}

	@Override
	public void run() {
		System.out.println("U盘工作中");
	}

	@Override
	public void stop() {
		System.out.println("U盘停止工作");
	}

}

// 打印机,实现USB接口
class Printer implements USB {

	@Override
	public void start() {
		System.out.println("打印机开始工作");
	}

	@Override
	public void run() {
		System.out.println("打印机工作中");
	}

	@Override
	public void stop() {
		System.out.println("打印机停止工作");
	}

}

public class PolDemo02 {

	public static USB createInstance(String name) {
		if ("Printer".equals(name)) {
			return new Printer();
		} else if ("UDisk".equals(name)) {
			return new UDisk();
		} else {
			return null;
		}
	}

	public static void main(String[] args) {
		// 1.用在方法参数的例子
		// new一个电脑实例,电脑工作,传入USB接口的具体实现
		Computer c = new Computer();
		c.work(new UDisk());
		c.work(new Printer());

		System.out.println("===================华丽分割线=====================");
		// 2.用在方法返回类型的例子
		// 这里用到的是向下转型,右边本是USB类型的,需要向下转为其实现类,也就是Printer类型
		Printer u = (Printer) createInstance("Printer");
		u.start();
	}

}
//输出:
U盘开始工作
U盘工作中
U盘停止工作
打印机开始工作
打印机工作中
打印机停止工作
===================华丽分割线=====================
打印机开始工作


3.多态的实现条件

Java实现多态有三个必要条件:继承、重写、向上转型。

继承:在多态中必须存在有继承关系的子类和父类。

重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。

向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。

只有满足了上述三个条件,我们才能够在同一个继承结构中使用统一的逻辑实现代码处理不同的对象,从而达到执行不同的行为。




GEE:面对对象土地利用分类(结合SNIC、GLCM 和机器学习算法) 本文将介绍在Google Earth Engine中结合SNIC、GLCM和机器学习算法的的土地利用/土地覆盖(LULC)分类方法。结果如下图所示, 阅读详情

相关推荐

高频功率放大器的设计实现

摘 要 随着无线通信技术的高速发展,市场对射频电路的需求越来越大,同时对射频电路的性能要求也越来越高。高频功率放大器是位于无线发射级末端的重要部件,为了弥补信号在无线传输过程中的衰耗,要求发射机具有较大功率的输出,通信距离越远,要求的输出功率越大。在高频范围内,为了获得足够大的高频输出功率,就要采用高频功率放大器。 本次课程设计的高频功率放大器的技术指标包括输出功率、效率、功率增益、由于高频频功率放大器的输出功率比较大,耗能比较多,所以工作效率就显得比较重要。本课程设计的高频功率放大器电路由两极功率放大器

qq_43543515的博客 3万+

子类及父类常见题目

1、结出如下程序的打印结果 父类: Java代码 public class Father {     public Father()     {        System.out.println("Father!");     }     publicvoid testA()     {        System.out.println("Father A");     }     publi...

itcast123的专栏 755

逆变器专题(3)-锁相环-PLL

锁相环作为并网逆变器的第一道门户,其锁相的精度将直接影响逆变器是否并网成功,若锁相精度较差,则会直接导致系统的功率因数下降,产生无功等等。在有关文献中指出,提高PLL带宽可以准确且快速进行锁相,而当电网电压含有谐波时,可适当降低带宽抵制谐波的干扰。成为变化量,而如果两者旋转速度达到一致时,所在的交轴分量。ki很大,即带宽很大时,稳定裕度不够,锁相环锁不住。为交流量,当频率锁定而相位没有锁定时,即。,即控制环前馈,可实现将锁相速度的加快。控为0,则可实现系统完美锁相。mod,取余,可减少存储空间。

cyc19980105的博客 6183

子类父类 继承问题

先看一个题目输出结果是啥?其实这道题考察的是 子类继承父类 (那些能继承 和哪些不能继承 protected  和private 区别)以及子类重写父类方法;当在子类中调用父类的方法时,其实应该访问的是父类中熟悉和方法,但是其中的name ,age 以及 read方法被子类重写覆盖,而hobby是私有属性不会被重写覆盖 ,所以输出的结果是...

Xly_blog 617

【清风数学建模笔记】第十一讲:时间序列分析

【清风数学建模笔记】第十一讲:时间序列分析

manerzi的博客 832

Appsflyer S2S事件上报实战:从参数获取到避坑指南(附Firebase对比)

本文详细解析了Appsflyer S2S事件上报的实战技巧,包括核心参数获取、测试环境搭建、生产环境最佳实践以及高级场景处理。通过对比Firebase的事件上报机制,帮助开发者高效避坑并优化数据上报流程,提升应用分析与营销效果。

egg99的博客 885

【JAVA】继承:父类与子类的理解(实例)

一、父类与子类的一个实例 package HELLO; //====================== 【Father类 - 父类】 class Father { public void print1() // { print2(); } public void print2() { System.out.println("我是父类中的【prin...

【敦厚的曹操】的专栏 5480

YOLOv5源码逐行超详细注释与解读(5)——配置文件yolov5s.yaml

全网最详细的YOLOv5源码解读之配置文件yaml。逐行注释,逐句讲解,一文带你了解yaml。小白必看!

路人贾的博客 1万+

java例题:

编写程序,求柱体的体积:(1)为柱体的底面设计一个接口 Geometry,包含计算面积的方法 getArea(),和计算周长方法 getC(),主函数的中需要调用这两个方法。;(2)为柱体设计类 pillar,要求:a)有两个成员变量,底面和高度。底面是任何可以计算面积的几何形状。b)实现构造方法,对成员变量赋值。c)包含成员方法,计算柱体 pillar 的体积。(3)编写测试类圆形类、矩形类实现 Geometry 接口,编写测试类 Test,分别用圆形、矩形作为柱体的底面,并计算其体积。 ...

m0_56210400的博客 2450

HMC7044调试指南与FPGA开发

最后,我们介绍了在FPGA开发中使用HMC7044的几个常见应用场景,包括时钟分配、时钟同步、高精度时钟生成和时钟域交叉。根据您的应用需求,您可以选择不同的时钟分配方案,例如使用PLL生成特定频率的时钟信号,或者通过分频器生成较低频率的时钟信号。HMC7044可以提供精确的时钟同步功能,确保各个FPGA板之间的时钟信号保持一致,从而实现可靠的数据传输和协同操作。HMC7044可以实现时钟域之间的交叉,通过生成和分配不同频率的时钟信号,使得不同时钟域的模块能够协同工作。FPGA开发中的HMC7044应用。

CqpFsharp的博客 3619

华为OD 面试手撕代码真题【判断链表是否有环】

华为OD 面试手撕代码真题【判断链表是否有环】

MISAYAONE的博客 7233

父类与子类加载关系真题

class A {    static {        System.out.print("A");    }    public A() {        System.out.print("a");    }    void say() {        System.out.print("1");    }}class B extends A {    static {        Sy...

weixin_42090508的博客 246

基于STM32设计的智能家居系统(采用ESP8266+OneNet云平台)

一、环境介绍 单片机采用:STM32F103C8T6 上网方式:采用ESP8266,也可以使用其他设备代替,只要支持TCP协议即可。比如:GSM模块、有线网卡等。 云平台: 采用中国移动OneNet. 也可以采用腾讯、阿里云、华为云、百度天工物接入、机智云等等。 前面文章有讲解。 协议: 采用MQTT协议 开发软件:keil5 完整项目源码下载:https://download.youkuaiyun.com/download/xiaolong1126626497/19766925 二、包含的硬件与实...

1万+

理解java三大特性之多态

java提高篇(四)-----理解java的三大特性之多态

L668303的博客 227

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java三大特性之多态

多态是Java的三大特性之一,它指的是同一个方法名字,在不同的对象中有不同的实现方式。具体来说,多态有两种表现形式:静态多态(编译时多态,也称为重载)和动态多态(运行时多态,也称为重写)。这些不同的实现方式可以让我们通过一个统一的接口来操作不同的对象,从而提高程序的灵活性和可扩展性。多态的好处是可以在不改变原有代码的情况下,增加新的功能,提高代码的可维护性和可扩展性。通过多态,我们可以使用一个统一的接口来操作不同的对象,降低代码的耦合度,提高代码的复用度和可读性。静态多态是通过方法重载来实现的。

m0_66130067的博客 418

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java三大特性之多态

https://www.cnblogs.com/chenssy/p/3372798.html

weixin_41113000的博客 180

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Java三大特性封装继承多态总结

1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类把自己该做的事情封装起来,而不是暴露给其他类去处理,当内部的逻辑发生变化时,外部调用不用因此而修改,他们只调用开放的接口,而不用去关心内部的实现 public class Human { private int age; private String name; public int

菜鸟的自我救赎的博客 249

Java三大特征之多态

Java多态 多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作。 Java中实现多态的三个必要条件 继承:在多态中必须存在有继承关系的子类和父类。 重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。 向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。 (如果我们定义了...

qq_45504065的博客 364

Java 三大特征——多态

简单来说,重写就是子类重写父类,参数不变,返回值无所谓,只能重写可继承的方法。

Yyzsvip的博客 1347

Java 三大特性之-多态

Java 三大特性之-多态 对于java的学习差不多也有一年多时间,而从一开始学习便了解的三大特性: 继承 封装 多态 到了现在逐渐开始有了新的认识,本篇文章就简单的聊一下多态。 了解多态之前,我们先大致了解一下继承和封装的作用 [ ] 继承: 继承不仅是对于对象关系的一种体现,对于客户端程序员来说,继承更是一种对代码复用性的一种体现。 [ ] 封装 : 讲到封装就得讲到面向对象之...

周日王的博客 198

Java 三大特性—多态

这是因为 Animal 类是 Dog 类和 Cat 类的基类,基类可以引用不同子类的对象,因此传递给形参 animal的值会出现不同,当传递的是 Dog 类的对象时,会调用 Dog 类中的方法,当传递的是 Cat 类的对象时,会调用 Cat 类中的方法。由上述结果可知,由于 animal 实际指向的是 Dog 类的对象,因此执行第二个 if 语句块,将 animal 强转为 Dog 类型对象,此时就可以调用 Dog 类中新增的成员方法。多态的体现:在代码运行时,当传递不同类的对象时,会调用对应类中的方法。

2401_87463146的博客 1038

Java 三大特性 —— 多态

Java中多态性的实现   一、什么是多态 1.面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。 2.多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用) 3.实现多态的技术称为:动态绑定(dynamic binding),是指

知秋一叶 3971

Java基础系列三之多态

多态引言:什么叫作多态呢?用通俗的话来说就是在同一时刻事物所呈现的不同状态例如 水:多态 固态 液态 气态 打个比方 父亲person有行为这个方法,里面包括几个动作:吃饭,睡觉,走路 父亲有三个儿子,三个儿子都继承了父亲的行为方法,所以三个儿子都有吃饭,睡觉,走路这些动作,但是三个儿子又分别有自己的方法---大儿子A会弹吉他,二儿子B会唱歌,三儿子C会打鼓 ...1.Pe...

qq_40727767的博客 199

Java三兄弟之多态

就像液体在不同的温度下呈现不同的状态一样。Java的多态也是指在不同的子类下,父类里面被子类重写的方法也会有不同的功能。

黑妖问路的博客 406

Java三大特性之——多态

多态就是多种形态,不同的对象去完成就会有不同的状态。

m0_71012114的博客 514

java多态 作用_关于Java三大特性之多态的总结

面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。1.定义:多态:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)2.实现多态的技术称为:动态绑定(dynamicbinding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的...

weixin_42390092的博客 1352
上一篇: java基础(二)——继承
下一篇: Spring实现控制反转(IOC)的三种方式(零)——理解IOC
冷静BB
博客等级 码龄12年 298粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值