【唐老狮】C#——多态和vob

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

    ​    ​截止目前,我们已经学会了面向对象中封装和继承两大特性的相关知识点。简单理解它们,封装就是用代码形容一个现实对象,继承就是复用代码,通过继承可以让类之间建立父子关系,复用一些特征和行为。

    ​    ​那么,我们接下来要继续学习最重要的一个特性——多态。

【多态】
 

概念

同一类型对象

执行相同行为

有不同的表现

为什么要学习多态?

    ​    ​根据多态的概念,很多同学可能会写出如上的代码,子类中重新实现一个SpeakName的方法,前面加一个new表示该方法会覆盖父类的方法

    ​    ​这样写看起来我们已经实现了基本的多态,子类调用的方法是自己的,已经不是父类的方法了。注意:这样实现多态是存在问题的!

零经验小白的独游历程——U3d学习经验与教程分享 前言 U3D作为主流引擎,网上的教程可以说是不计其数。但是程序是一种模式化的思维,引擎也有他的底层原理。网上很多网课只是一步一步地展示做法,看似实现了效果,但其实根本没有说清楚背后的原理。我们就算跟着做了一遍,也只是熟悉了引擎的基本操作,但是如果想要自己做点什么效果,便会问题百出。 比如说一开始我们打的第一行Unity代码一般都是控制玩家移动的。这时勤劳好学的我们一定会跟着师一起打下这行代码。 void FixedUpdate() { rb.MovePosition(transform.p 阅读详情

相关推荐

唐老狮C#——多态:接口

目前多余多态的实现,我们已经学习了两种方式:vob以及抽象类抽象函数。今天我们要来学习最后一个关于多态实现的知识点——接口!在学习它之前我们先来回顾一下重要知识点。 【vob多态的概念 同一类型对象 执行相同行为 有不同的表现 多态的实现 ↓↓↓↓ 编译时多态 函数重载 运行时多态 虚函数(vob) 抽象函数 接口 vob virtual(虚函数) override(重写) vo结合使用 实现多态 base(父类) 保留...

MrTang_Unity的博客 617

C#中的虚函数:深入理解使用

虚函数是一种在基类中声明并在派生类中重写的方法。通过使用关键字virtual,可以定义虚函数。派生类可以根据需要重写虚函数,以提供不同的实现。虚函数的主要目的是实现多态性。在程序运行时,通过基类的引用或指针调用虚函数时,将根据实际对象类型执行相应的派生类方法。虚函数是C#中实现多态性的重要机制之一。它允许在继承关系中重写基类方法,并根据实际对象类型调用适当的方法。使用虚函数可以实现灵活的代码设计更好的代码复用性。通过理解熟练使用虚函数,您可以写出更优雅、可扩展的面向对象程序。

TechBlitzZ的博客 765

唐老狮C#——多态:抽象类抽象方法

上篇回顾 概念 同一类型对象 执行相同行为 有不同的表现 多态的实现 ↓↓↓↓ 编译时多态 函数重载 运行时多态 虚函数(vob) 抽象函数(之后讲) 接口(之后讲) vob virtual(虚函数) override(重写) vo结合使用 实现多态 base(父类) 保留父类行为 ​​上一篇我们已经学习了多态的基本概念,利用vob来实现多态。今天我们将学习多态的另一种实现——抽象类抽象函数。 【抽象类抽象函数】 ...

MrTang_Unity的博客 588

C# 中的虚函数详解与示例代码

C# 中,虚函数是一种特殊的函数类型,它允许子类重写父类的方法,并且在运行时根据对象的实际类型来确定调用哪个方法。虚函数为面向对象编程提供了多态性的支持,使得程序可以根据对象的具体类型来执行不同的方法。尽管我们将父类的引用指向了子类的对象,但在运行时,程序会根据对象的实际类型来调用相应的重写方法。这就实现了多态性,使得我们可以通过父类的引用来调用子类的方法。它们提供了一种灵活的方式来实现多态性,使得程序具有更好的可扩展性可维护性。通过合理地使用虚函数,我们可以更好地组织设计我们的代码。

m0_47037246的博客 365

C#中的虚函数

C#中的虚函数virtual 简单介绍虚函数virtual 在某基类中声明 virtual 并在一个或多个派生类中被重新定义的成员函数称为虚函数。 虚函数的作用就是实现多态性(Polymorphism),多态性是将接口与实现进行分离。 C#作为完全面向对象语言,所有函数并不默认为virtual,但可以在基类中声明关键字virtual,就可以在其派生类中通过关键字override重写该函数。重写后的virtual函数依旧是virtual函数。由于virtual只对类中的实例函数成员有意义,所以成员字段静态函

muyuxuyang的博客 5995

[C#复习向整合]多态

一.多态的概念 让继承同一父类的子类们,在执行相同方法时有不同的表现. virtual override base 简称vob 若没有多态的弊端: class Father { public void SpeakName() { } } class Son : Father { public new void SpeakName()//重写父类方法,可以不加new,但编译器会提示你 { } } //使用例 Father

VAherggoooooo的博客 128

接口课后习题·唐老狮

第一题: class deng//新建一个deng类 { interface Idengji//定义一个登记的接口 { void name();//随便写的,方法/事件/属性/索引器都可以 } } class paichusuo : deng, Idengji//引用dneg类Idengji接口 { public void name() { Console.WriteLine("

qiushubo的博客 225

C#中的虚函数定义,原理与用法

C#虚函数

追赶时代的博客 1214

C#虚函数

在面向对象编程中,有两种截然不同的继承方式:实现继承接口继承。在实现继承时候,在Java中,所有函数默认都是virtual的,而在C#中所有函数并不默认为virtual的,但可以在基类中通过声明关键字virtual,就可以在其派生类中通过关键字override重写该函数。 重写后的virtual函数依旧是virtual函数。由于virtual只对类中的实例函数成员有意义,所以成员字段静态函...

用通俗的语言讲述严谨的科学方法 3074

Unity3d实战就业路线》

唐老狮Unity3d实战就业路线》课程 市场上缺少专门围绕核心路线设计的成体系的unity课程。本套餐完整统一的unity3d学习路线,统一的师与内容设计。内容难度层层推进,核心能力养成无死角 适合什么学员? ·接触unity不久,需要系统的学习 ·不知道如何从头到尾,系统学习掌握unity ·学过少量或很多散课,但不得要领,不知如何选课 ·希望扎实掌握c#unity,成为有能力可就业的开发者 就业路线套餐包括以下模块课程: 1、C#语言教学四部曲 + 实践四部曲 2、U..

zzc168zzc的博客 3703

C#之虚函数

若一个实例方法声明前带有virtual关键字,那么这个方法就是虚方法。虚方法与非虚方法的最大不同是,虚方法的实现可以由派生类所取代,这种取代是通过方法的重写实现的(以后再讲)虚方法的特点:虚方法前不允许有static,abstract,或override修饰符虚方法不能是私有的,因此不能使用private修饰符虚方法的执行:我们知道一般函数在编译时就静态地编译到了执行文件中,其相对地址在程序运行期...

weixin_33997389的博客 458

c# 虚函数

1、java 中的所有方法都是虚拟的 2、 c# 中的虚函数用于多态中; 3、父类函数使用virtual 修饰 public class Person { public virtual void one() { Console.WriteLine("person"); } } 4、子类使用override 修饰 public class Student : Person { public o

limonero 1481

C#多态

多态是同一个行为具有多个不同表现形式或形态的能力。多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。多态性可以是静态的或动态的。在静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生的。在 C# 中,每个类型都是多态的,因为包括用户定义类型在内的所有类型都继承自 Object。现实中,比如我们按下 F1 键这个动作:如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Wind

MUZIOHH的博客 223

C#学习-多态(向上转型&&向下转型&&as关键字&&is关键字)

向上转型&&向下转型 using System; using System.CodeDom; using System.Collections.Generic; using System.Diagnostics.Contracts; using System.Linq; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading.Tasks; namespa

晴天下的大头娃娃 863

C# 核心8——多态

多态Vob,抽象类抽象方法

weixin_45274937的博客 345

唐老狮C#四部曲之C#入门:习题汇总

本篇文章对视频教程 《【唐老狮Unity系列之C#四部曲—C#入门》 当中的课后练习题进行了汇总,方便同学们统一进行练习复习 这些习题的解题部分都在本教程中以视频的形式进行了详细讲解 B站免费试看 【唐老狮Unity系列之C#四部曲—C#入门_哔哩哔哩_bilibili 泰课会员免费看: https://www.taikr.com/goods/show/589 本套课程属于Unity实战就业路线(打折预售中) https://www.taikr.com/goods/show/5.

MrTang_Unity的博客 4465

唐老狮】排序——插入排序

【插入排序】 【基本原理】 两个区域 排序区 未排序区 用一个索引值来区分 未排序区元素 与排序区元素比较 插入到合适位置 直到未排序区清空 排序开始前,首先认为第一个元素在排序区中,其它所有元素在未排序区中。 排序开始后,每次将未排序区第一个元素取出用于排序区中元素比较。如果满足条件(较大或者较小),则排序区中元素往后移动一个位置。 注意 所有数字都在一个数组中 所谓的两个区域是一个分水岭索引 【关键逻辑】 循环n-1次 有n个数就循环n-1次.

MrTang_Unity的博客 684

唐老狮 UGUI 实战学习笔记(2)

嘻嘻

咩咩的博客 627
上一篇: 【唐老狮】C#——继承:密封类
下一篇: 【唐老狮】C#——多态:抽象类和抽象方法
一唐老狮一
博客等级 码龄5年 505粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值