java中的多态性

JAVA中的多态性 在这里,我们清楚地看到,物体的特定行为被保留了,尽管我们在将它们“推广”为猫后,将所有三种动物都传递给了方法。所有的动物都是不同的,但在某些情况下,猫就是猫,无论它的种类如何 :) 这里有一些视频给你确认。当这种“概括”是不需要的,而我们需要每个物种的行为不同时,每种类型都会做自己的事情。即使我们扩展程序以支持40种类型的猫,我们仍然会拥有最简单的界面:所有40只猫的单个运行()方法。因此,我们的Dolittle课程与不同的类型一起工作,就好像它们是相同的类型一样。换句话说,他们的行为是不同的。 阅读详情
/*
多态:可以理解为事物存在的多种体现形态。

人:男人,女人

动物:猫,狗。

猫 x = new 猫();

动物 x = new 猫();

1,多态的体现
	父类的引用指向了自己的子类对象。
	父类的引用也可以接收自己的子类对象。
2,多态的前提
	必须是类与类之间有关系。要么继承,要么实现。
	通常还有一个前提:存在覆盖。

3,多态的好处
	多态的出现大大的提高程序的扩展性。

4,多态的弊端:
	虽然提高了扩展性,但是只能使用父类的引用访问父类中的成员。

5,多态的应用

6,多态的出现代码中的特点(多态使用的注意事项)




第二个问题:如何使用子类特有方法。
*/

/*
动物,
猫,狗。
*/

class Cat extends Animal
{
	public void eat()
	{
		System.out.println("吃鱼");
	}
	public void catchMouse()
	{
		System.out.println("抓老鼠");
	}
}


class Dog extends Animal
{
	public void eat()
	{
		System.out.println("吃骨头");
	}
	public void kanJia()
	{
		System.out.println("看家");
	}
}


class Pig extends Animal
{
	public void eat()
	{
		System.out.println("饲料");
	}
	public void gongDi()
	{
		System.out.println("拱地");
	}
}

//-----------------------------------------


class DuoTaiDemo2 
{
	public static void main(String[] args) 
	{
		//Animal a = new Cat();//类型提升。 向上转型。
		//a.eat();

		//如果想要调用猫的特有方法时,如何操作?
		//强制将父类的引用。转成子类类型。向下转型。
		///Cat c = (Cat)a;
		//c.catchMouse();
		//千万不要出现这样的操作,就是将父类对象转成子类类型。
		//我们能转换的是父类应用指向了自己的子类对象时,该应用可以被提升,也可以被强制转换。
		//多态自始至终都是子类对象在做着变化。
//		Animal a = new Animal();
//		Cat c = (Cat)a;
		

		/*
		毕姥爷 x = new 毕老师();

		x.讲课();

		毕老师 y = (毕老师)x;


		y.看电影();
		*/
		function(new Dog());
		function(new Cat());


	}
	public static void function(Animal a)//Animal a = new Cat();
	{
		a.eat();
		/*
		if(a instanceof Animal)
		{
			System.out.println("haha");
		}
		else 
		*/
		if(a instanceof Cat)
		{
			Cat c = (Cat)a;
			c.catchMouse();
		}
		else if(a instanceof Dog)
		{
			Dog c = (Dog)a;
			c.kanJia();
		}


		/*
		instanceof : 用于判断对象的类型。 对象 intanceof 类型(类类型 接口类型)  
		*/
	
	}
	


}



       
在多态中成员函数的特点:
在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。
在运行时期:参阅对象所属的类中是否有调用的方法。
简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。


在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)。

在多态中,静态成员函数的特点:
无论编译和运行,都参考做左边。



NV 英伟达2022数字芯片笔试题 作者:数字IC打工人 链接:【开卷】第27期 NV 英伟达2022数字芯片笔试题_笔经面经_牛客网 来源:牛客网 1、Single Choice: Given thefollowing FIFO and rules, how deep does the FIFO need to be to preventunderflow or overflow? RULES: clk_A=25MHz; clk_B=100MHz; en_B is periodically asserted: period. 阅读详情

相关推荐

数学建模国赛B题保姆级攻略:从选题到代码实现的完整流程(2024最新版)

本文提供2024年数学建模国赛B题的保姆级实战攻略,涵盖从赛题解构、模型构建到算法实现与论文撰写的完整流程。文章详细解析了如何快速抓住问题核心、建立数学模型、进行算法求解与结果可视化,并分享了高效团队协作与专业论文写作的关键技巧,助力参赛者系统性地完成从选题到代码实现的全过程。

weixin_29089057的博客 141

【Java】Java中的多态

在Java中,多态是面向对象编程中的一个重要概念,它允许不同类型的对象对同一方法进行不同的实现。具体来说,多态性指的是通过父类的引用变量来引用子类的对象,从而实现对不同对象的统一操作。例如:狗和猫都是动物,动物共同的行为都有吃这个动作,而狗可以表现为啃骨头,猫则可以表现为吃老鼠。这就是多态的表现,即同一件事情,发生在不同对象的身上,就会产生不同的结果。在面向对象编程中,重写(Override)指的是子类重新定义和实现了从父类继承而来的方法,以改变方法的行为。

qq_61635026的博客 3万+

【tensorrt】——深入解析TypeError: pybind11::init()报错:CUDA版本冲突与解决方案

本文深入解析了TensorRT中常见的TypeError: pybind11::init()报错问题,重点探讨了CUDA版本冲突的根源与解决方案。通过实际案例展示了PyTorch与TensorRT的版本兼容性问题诊断方法,并提供了conda环境管理、环境变量配置等实用修复技巧,帮助开发者有效解决CUDA初始化失败问题。

ggg99的专栏 272

JAVA--多态

多态是什么?

越努力,越幸运 7752

群晖Lucky套件高级玩法-——更新证书同步更新群晖自带证书

群晖Lucky套件高级玩法-——更新证书同步更新群晖自带证书

wojuzi的博客 2455

Unity游戏开发实战:用柏林噪声打造3D随机地形(附完整C#代码)

本文详细介绍了如何在Unity游戏开发中使用柏林噪声算法生成3D随机地形,包含完整的C#代码实现。从基础柏林噪声原理到高级参数控制,再到性能优化和常见问题解决,帮助开发者掌握程序化地形生成技术,打造丰富多变的游戏世界。

weixin_29281941的博客 101

Java中的多态

Java中的多态

z972065491的博客 5万+

ComfyUI-controlnet控制出图

提供加载预处理器节点。

Bu2n的博客 5494

Java——多态

多态、方法重写、向上转型、向下转型

2301_81375781的博客 5418

基于决策树的英雄联盟比赛胜负预测(含完整代码)

在代码中设置随机种子(例如 RANDOM_SEED = 2024)的主要目的是为了确保每次运行代码时,随机过程的结果是一致的。通过绘制不同参数组合下的准确率图,直观地展示了参数对模型性能的影响,帮助读者更好地理解和选择合适的参数。通过设置相同的随机种子(伪随机数),可以确保每次运行代码时,随机数生成器生成的随机数序列是相同的。如果在开发过程中遇到问题,设置固定的随机种子可以帮助你更容易地定位问题,因为每次运行代码时的数据和结果都是一样的。在科学研究和实验中,结果的可重复性是非常重要的。

oisflo的博客 1919

An工具介绍之摄像头

An工具介绍之摄像头

人生得意须尽欢 6187

【Java】多态

面向对象程序三大特性:封装、继承、多态。

是小辰 6053

金属表面粗糙度对信号的影响

之前的文章中,已经采用CST中的微带线模块进行了很多的仿真分析,本文将再次利用这些模块,从另外一个角度去探讨关于传输线的使用问题--金属的表面粗糙度。 众所周知,数据传输中,当速率越来越高时,信号在金属介质中的趋肤效应就愈发明显,能量就会更多地集中于金属的表面进行流动,此时,如果金属表面不再光滑而是凹凸不平,能量的传输过程就会产生波动,当这种波动积累到一定的量级,就会严重影响到传输线的阻抗稳定性,从而导致信号失真和传输异常。

一只豌豆象的博客 2895

Java中的多态性

多态性(Polymorphism)是面向对象编程的三大基本特性之一,它允许我们以统一的方式处理不同的对象。多态性主要体现在方法的重写(Override)和方法的重载(Overload)上,但真正的多态性通常指的是方法的重写,并在运行时根据对象的实际类型来确定调用哪个方法。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 6901

SAP B1中文培訓教材_SDK

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

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java 中的多态性

Java中的多态性是一种强大而灵活的编程特性,它通过方法重写和接口实现等方式,为代码带来了高度的复用性、扩展性和简洁性。在实际编程中,无论是简化代码逻辑还是增强系统的可扩展性,多态性都发挥着至关重要的作用。同时,它与封装性和继承性相互配合,共同构建了Java面向对象编程的坚实基础,使得Java程序员能够更加高效地开发出复杂而健壮的应用程序。深入理解和熟练运用多态性,是每一位Java开发者迈向高级编程境界的必经之路。

rit8432499的博客 688

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java中的多态性(Polymorphism)

多态性是指允许不同类的对象对同一消息作出响应,即同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在Java中,多态性主要通过两种形式实现:编译时多态(也称为方法重载)和运行时多态(也称为方法重写)。编译时多态(方法重载):在同一个类中,允许存在多个同名方法,只要它们的参数类型不同、参数个数不同或参数顺序不同,即可构成重载。编译时多态在编译时就已经确定具体调用哪个方法。运行时多态(方法重写):子类可以重写父类中的方法,在运行时,JVM会根据对象的实际类型来调用相应的方法。

Chujun123528的博客 2064

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

探究Java中的多态性

多态性是指同一个方法调用可以在不同的对象上产生不同的行为。它使得代码可以更通用,处理多种不同类型的对象,而无需在每个特定情况下都编写专门的代码。在Java中,多态性是通过继承和方法重写来实现的。

2202_75569688的博客 703

Java:Java中的多态性

面向对象编程(OOP)的一个关键概念是多态性,它使开发人员能够编写基于上下文以不同方式工作的代码,使你的代码更加灵活和可扩展。在这篇文章中,你将学习多态、它的优点和缺点,以及Java中不同类型的多态性。

yueqian_edu的博客 431

Java中的多态性是什么?

多态性(Polymorphism)是指允许不同类的对象对同一消息作出响应,即同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在Java中,多态性主要通过两种形式实现:编译时多态(也称为方法重载)和运行时多态(也称为方法重写)。

Dingdangr的博客 1092

Java多态性在项目中的应用思路

在学习Java程序设计基础的时候,最开始接触的就是Java的四大基础特性:抽象、封装、继承还有多态。虽然掌握了这几个特性的使用方法,但是在项目中软件的设计中考虑到使用Java的多态性,还是需要一定的经验去判断。该博客是在实习过程中对代码设计的一些学习想法。 Java多态性 多态是同一个行为具有多个不同表现形式或形态的能力。具体来说,多态就是同一个接口,使用不同的实例而执行不同操作。比较常...

weixin_41444522的博客 1166

java中的多态性_[转载] c++多态与java多态性_Java中的多态性

参考链接: Java中的加法和串联c++多态与java多态性Polymorphism is one of the core concepts of OOPS paradigm. The meaning of polymorphism is the condition of occurring in several different forms.多态是OOPS范式的核心概念之一。 多态性的含义是以...

weixin_42556143的博客 144

java 多态_java中的多态性

1、java中只要有两种体现形式(1)方法的重载和覆写(2)对象的多态性 1)向上转型:子类对象—》父类对象; 2)向下转型:父类对象—》子类对象; 对于向上转型,程序会自动完成,而对于向下转型时,必须明确的指明要转型的子类类型 对象向上转型:父类 父类对象 = 子类实例; 对象向下转型:子类 子类对象 = (子类)父类对象;下面进行对象向上转型的操作: 【对象向上转型...

weixin_39669265的博客 146
上一篇: 继承、抽象类和接口的特点与关系
下一篇: 内部存储空间读写文件
Li_Pine
博客等级 码龄12年 17粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值