面向对象---多态

新手小白学JAVA 面向对象之多态 4 多态 4.1 概念 多态指同一个实体同时具有多种形式 它是面向对象程序设计(OOP)的一个重要特征。 主要是指同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态。 好处是:可以把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,统一调用标准。 水果有两种形态:水果和苹果,不关心买回来的是苹果还是西瓜,只要是水果就行 class Animal{//1.定义父类Animal …eat(){syso(“吃啥都行”)} } class Cat exte 阅读详情

1.实现多态的必要条件:继承(或者实现接口),重写,向上转型

2.在程序运行过程中分为两个时期:

编译期,javac检查animal中是否有eat()方法的声明,抽象方法也能通过编译

运行期,JVM去内存中调用真正的对象,Cat或Dog然后调用他们的eat方法

例子:

父类:

package neuedu9.one;

public abstract class Animal //包含抽象方法的类叫抽象类,抽象类里不能创建对象
{
	protected int age;//抽象类可以声明变量来被其他类继承
	protected String name;
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public abstract void eat();//抽象方法没有方法体
}

子类:

package neuedu9.one;

public class Cat extends Animal
{
	private String style;
	public String getStyle() {
		return style;
	}
	public void setStyle(String style) {
		this.style = style;
	}
	@Override
	public void eat() {
		// TODO Auto-generated method stub
		System.out.println("猫吃鱼");
	}

}





package neuedu9.one;

public class Dog extends Animal
{
	private int LegCount;
	public int getLegCount() {
		return LegCount;
	}
	public void setLegCount(int legCount) {
		LegCount = legCount;
	}
	@Override
	public void eat() 
	{
		// TODO Auto-generated method stub
		System.out.println("狗吃骨头");
	}
	
}

测试类:

package neuedu9.one;

public class MainTest {
//多态三个条件:继承(接口),重写,向上转型
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Animal a=new Cat();//向上类型转换
		Animal b=new Dog();
		a.eat();
		b.eat();
		//编译时,javac检查Animal是否有eat()方法的声明,抽象方法也能通过编译
		//运行时,JVM去内存中调用真正的对象,Cat或Dog然后调用他们的eat方法
	}

}

运行结果:

猫吃鱼
狗吃骨头
总结:

多态就是不同的对象对于同一消息做出不同的响应,就像上述的例子中,猫类对象a和狗类对象b都调用eat方法,得到的结果却不一样,这就是多态的体现。

向上转型和向下转型:

向上转型就是将子类引用的对象转为父类类型,上面的例子中Animal a=new Cat();就是向上转型

向下转型就是将父类对象转为子类对象,例如Son son=(Son) father;

自举电容的工作原理-3句话总结 1、一道面试题 照例,先抛出来一道面试题:“Buck电路的SW引脚通常会放置一颗小电容,这颗电容有什么用?”。这个问题问得比较细,非常考验被面试者的硬件基本功。 2、似懂非懂的答案 有小伙伴可能不太清楚这颗电容的作用,回答不上来。也有小伙伴脱口而出:自举电容,用来做升压的。但后面好像说不出来具体逻辑。 没具体了解过,答不上来,也没啥可惜的。但是了解过一点,但又似懂非懂的这种,给出的答案只是轻轻点水或者千篇一律,那无疑是错过了一个加分项。 3、异步Buck的自举环路组成 既然是针对Buck电路讲自举电容,前面 阅读详情

相关推荐

三、STM32F103ZET6最小系统

stm32最小系统除去主控CPU外,需要包含,电源电路,复位电路,BOOT电路,时钟电路(因为stm32有内置时钟,对时钟要求不高的话,可以不要)。NRST引脚其实芯片已经用一个约40K的电阻上拉了,所以理论上来说是不需要再外接上拉电阻的,但我看大家都是有外接上拉的,心里没有底,不管这么多,先预留着。吃过亏,特意查看了芯片手册资料,下图是官方建议的供电方案,图片来自stm32f103zet6数据手册。首先明白目标,单纯的学习软件知识并不是我希望的,我还希望会硬件设计,这样后面才能摆脱开发板。

sevendecsdn的博客 6453

面向对象——多态

1. 多态概念        多态是面向对象程序设计(OOP)的一个重要特征,指同一个实体同时具有多种形式,即同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态。        可以把不同的子类对象都当作父类来看,进而屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,统一调用标准。 多态的主要用途 1、提高程序的可扩展性; 2、降低系统耦合度; 3

杨思默 3133

C语言实现TCP聊天室:Socket编程与并发模型实战解析

网络编程是构建分布式系统的核心技术,其核心在于理解进程间通信的底层机制。TCP/IP协议栈提供了可靠的字节流传输服务,通过Socket API这一抽象接口,开发者可以在应用层建立连接、收发数据。为了高效处理多个并发连接,服务器需要采用多线程或I/O复用模型,前者为每个连接创建独立线程,逻辑清晰但资源消耗大;后者通过select、poll或epoll等系统调用监控多个文件描述符,显著提升并发能力。这些技术是构建高性能网络服务(如即时通讯、在线游戏服务器)的基础。本文以C语言实现一个简洁的TCP聊天室为例,详细

weixin_32642109的博客 292

什么是多态?面向对象中对多态的理解

多态(Polymorphism)是面向对象编程(OOP)中的一个核心概念,它允许对象以多种形式出现。多态性使得同一个接口可以用于不同的数据类型,从而使得代码更加灵活和可扩展。简单来说,多态就是一个接口,一个类,一个抽象类,一个类里面的方法,不同类的同一个方法,都可以有多种实现,这个在面向对象里面,就对应着继承、重载、重写等具体的方式。灵活性:多态性允许同一个接口用于不同的对象,从而使得代码更加灵活。可扩展性:可以在不修改现有代码的情况下,通过添加新的类来扩展程序的功能。

fefdfg的博客 1733

新手也能搞定的ANPC三电平逆变器Simulink仿真:从SPWM调制到开关损耗优化

本文详细介绍了如何在Simulink中搭建ANPC三电平逆变器仿真模型,从SPWM调制基础到开关损耗优化技巧。通过分层设计思路和实用代码示例,帮助新手快速掌握ANPC拓扑的核心功能,包括中点平衡控制和性能指标分析,为电力电子系统设计提供实践指导。

weixin_30335575的博客 407

Windows如何使用Anaconda 3进行keras环境的配置

** Windows如何使用Anaconda 3进行keras环境的配置 搭建Keras环境* Anaconda3如何安装keras,主要包括下面三步: 1.安装mingw libpython 2.安装theano 3.安装keras 若你还没有按装anaconda,赶紧下载安装吧! 下载途径有两个 (1)Anaconda版本为Anaconda 4.4.0,对应的python版本为3.6,附上An...

Lance_liangliang的博客 1601

面向对象—多态

多态

qq_44346427的博客 3844

泛微OA表单设计实战:如何快速实现自定义多选浏览框(附完整配置步骤)

本文详细介绍了在泛微OA中快速实现自定义多选浏览框的完整配置步骤。针对招聘提报、活动审批等需要从海量数据中规范选择多个条目的业务场景,文章从理解需求、构建数据源、设计查询页面到创建浏览框控件,提供了清晰的实战指南,帮助开发者高效解决复杂数据选择难题,提升表单操作体验。

yog99的博客 1049

面向对象——多态详解

多态(Polymorphism)属于面向对象的三大特征之一,它的前提是封装形成独立体,独立体之间存在继承关系,从而形成多态机制。多态是同一个行为具有多个不同表现形式的能力。多态就是“同一个行为”发生在“不同对象上”会产生不同的效果。多种形态,多种状态,编译和运行有两个不同的状态编译期叫做静态绑定运行期叫做动态绑定现在我们再来回顾面向对象的三大特征:封装、基础、多态他们之间的关系是一环扣一环首先得封装成一个整体才有了继承的概念有了继承关系才有了多态的实现 ......

shouyeren_st的博客 1634

基于Simulink的间接功率控制的矩阵变换器

通过上述步骤,我们成功设计并实现了基于 Simulink 的间接功率控制的矩阵变换器仿真模型。该模型能够通过控制输入电流和输出电压,实现对功率的间接控制,适用于电机驱动、可再生能源系统、电力传输等领域。通过虚拟场景仿真、参数优化和性能评估,验证了系统的稳定性和高效性,并通过调整 PI 控制器参数和优化调制算法,进一步提升了系统的性能。

MHD0815的博客 296

华为OD机试 - 整型数组按照个位数排序(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。给定一个非空数组,其元素数据类型为32位有

学Java,找哪吒 399

【多态】面向对象之多态实例代码

【多态】面向对象之多态实例 对象: 主人 行为:喂养宠物 宠物(父类) 行为:吃XXX 猫(子类) 行为:吃鱼 狗(子类) 行为:吃骨头 实例代码: 1.无多态实例代码 public class Master{ public void feed( Cat cat){ cat.eat(); } public void feed(Dog dog){ dog.eat();...

qq_40284440的博客 578

计算机组成原理(第三版)唐朔飞-第六章计算机的运算方法-课后习题(17-32)

计算机组成原理(第三版)唐朔飞-第六章计算机的运算方法-课后习题(17-32)

weixin_45735391的博客 12万+

面向对象设计领域中的参数多态,包含多态,过载多态和强制多态

在面向对象设计中,多态性是一个重要的概念,它允许我们以一种统一的方式处理不同类型的对象,并根据对象的实际类型来执行相应的行为。通过将具体的对象看作是其父类或接口的实例,并在方法调用时根据实际的对象类型来确定具体的执行逻辑,我们可以以一种统一的方式处理不同类型的对象。- 当方法需要操作的对象类型不确定时,可以使用多态来接受不同类型的对象,减少代码的重复。使用场景: - 当需要执行类似的操作,但操作的参数类型或个数可能不同时,可以使用过载多态来定义多个方法,使得代码更清晰、简洁,并提高代码的可读性。

辣香牛肉面的博客 1468

计算机控制技术及应用

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

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

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

面向对象的三大特征之一多态

1. 什么是多态 多态性是面向对象编程的又一个重要特征,它是指在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在父类及其各个子类中具有不同的含义。 对面向对象来说,多态分为编译时多态和运行时多态。其中编译时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的方法。通过编译之后会变成两个不同的方法,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是大家通常所说的多态性。 简单的说就是 在通过父类来获取他名下继承

qq_28629389的博客 1819

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

面向对象的多态

多种形态,总的来说:同一件事情,发生在不同对象身上,就会产生不同的结果。1.2.3.完成以上3部分会发生动态绑定(是多态最基础的)实际就是创建一个子类对象,将其当成父类对象来使用。

forwkard__的博客 1079

IEM模型,地表粗糙度模拟

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

面向对象-多态性

 面向对象的软件开发语言具有三个重要的特点分别为封装性、继承性、多态性。封装性即意味着对象封装其内部的数据,使其对外不可见,以保证数据的安全性。继承性是代码复用的一个很好的解决方案,但是继承关系是编译器在编译阶段就为所有的对象决定的,因而在软件工程过程中,继承性太过死板,存在很大的局限性。而多态性,它是将多种不同的特殊行为进行抽象的一种能力,通过结合继承性,多态性很好地解决了OO遇到的很多麻烦

闪亮每一天 3869

面向对象三大特性——多态

面向对象—多态 ———————————————— 1. 2. 3.

weixin_44008460的博客 1361

面向对象之多态

面向对象之多态 多态是面向对象很重要也是很难理解的一部分。 A.多态概述: 同一个事物在不同时刻表现出的不同状态 比如 猫可以是猫的类型 也可以是动物的状态。 所以我们可以用猫类引用猫类对象, 也可以用动物类引用猫类对象。但前提猫类必须属于动物类。 所以 多态的前提是继承。 举例: Cat c=new Cat(); Animal a=new Cat(); 猫可以是猫的类型。猫 m = ne...

rsnmd的博客 307

面向对象-多态

目录: 什么是多态? 多态的形式 使用多态有什么前提? 多态的好处 引用类型转换 1.什么是多态? 是指同一行为,具有多个不同表现形式 2.多态的形式: -多态是除封装、继承之后面向对象的第三大特征。 -多态是出现在继承或者实现关系中的 多态体现的格式: 父类类型 变量名 = new 子类/实现类构造器; 变量名.方法名(); 3.使用多态有什么前提? 多态的前提:有继承关系,子类对象...

itzhuzhu的博客 442

面向对象多态性

面向对象多态性 面向对象的多态性体现在,一个对象有多种形态,例如:对象小明是一个学生,但也是一个人类。面向对象的多态性是建立在继承性之上的。 对象的向上转型。 对象的向上转型是安全的,创建子类当父类用。类和接口都是可以向上转型的。 父类 对象名 = new 子类(); 接口 对象名 = new 实现类(); eg: //父类 public class Fu { int num = 10...

zezea的博客 816

【JAVA】面向对象三大特性之多态

本文深入解析Java多态的核心概念与实现机制。多态作为面向对象编程三大特性之一,通过继承体系下的方法重写实现"一个接口,多种实现"的效果。文章详细阐述了多态的实现条件(继承、重写、父类引用调用),并通过动物类继承体系代码示例演示了多态的具体应用。同时对比了方法重写与重载的区别,解释了静态绑定与动态绑定的原理。此外,文章还系统介绍了向上转型(子类对象作为父类使用)和向下转型(父类引用还原为子类对象)的转换机制及使用场景,特别指出了向下转型的安全隐患及instanceof操作符的解决方案。全

m0_68002296的博客 704
上一篇: final和finally的区别
下一篇: 包装类相关内容
Alt__
博客等级 码龄7年 16粉丝 80原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值