Unity中的重载和重写

2023-11-19

一、重载

重载:(两个必须一个可以)

  1. 参数名必须相同
  2. 参数列表必须不同
  3. 返回值类型可以不同

代码示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class OverLoad : MonoBehaviour
{
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.L))
        {
            Eat(3.2f);
        }

        if (Input.GetKeyDown(KeyCode.K))
        {
            Eat(3);
        }
    }

    public void Eat(int i)
    {
        Debug.Log("我是int类型的吃");
    }

    public int Eat(float i)
    {
        Debug.Log("我是Float类型的吃");
        return 0;
    }

    public virtual void SayHello(string name)
    {
        Debug.Log(name + "你好!");
    }

}

结果:
在这里插入图片描述

二、重写

重写:(三个必须)

  1. 函数名必须相同
  2. 参数列表必须相同
  3. 返回值类型必须相同

代码示例:
父类

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class OverLoad : MonoBehaviour
{
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.J))
        {
            SayHello("小朱");
        }
    }

    public virtual void SayHello(string name)
    {
        Debug.Log(name + "你好,我是父类方法");
    }

}

子类继承父类

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class OverWirte : OverLoad
{
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.U))
        {
            SayHello("小朱");
        }
    }

    public override void SayHello(string name)
    {
        Debug.Log(name+"你好,我是重写方法");
    }

}

结果:
在这里插入图片描述

三、重载和重写的区别

  1. 多态、封装、继承的位置不同,重载在同一定义域中(如在同一类中),重写在子类中。
  2. 定义不同,重载两个必须一个可以,重写三个必须
  3. 调用方式不一样,重载相同对象可以调用不同参数,重写不同对象调用相同参数
  4. 多态时机不同,重载编译时多态,重写运行时多态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity中的重载和重写 的相关文章

  • 向进度条添加百分比文本 C#

    我有一个方法可以显示进程栏何时正在执行以及何时成功完成 我工作得很好 但我想添加一个百分比 如果完成 则显示 100 如果卡在某个地方 则显示更少 我在网上做了一些研究 但我无法适应我正在寻找的解决方案 这是我的代码 private voi
  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 使用 LINQ2SQL 在 ASP.NET MVC 中的各种模型存储库之间共享数据上下文

    我的应用程序中有 2 个存储库 每个存储库都有自己的数据上下文对象 最终结果是我尝试将从一个存储库检索到的对象附加到从另一个存储库检索到的对象 这会导致异常 Use 构造函数注入将 DataContext 注入每个存储库 public cl
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 具有交替类型的可变参数模板参数包

    我想知道是否可以使用参数包捕获交替参数模式 例如 template
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • 使用 C# 读取 Soap 消息

  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的

随机推荐

  • QSignalMapper基本用法

    QSignMapper mapper new QSignMapper this QPushButton btn1 new QPushButton this btn1 gt setText btn1 QPushButton btn2 new
  • phpstorm点设置没反应怎么解决?

    先把汉化包拿出来 再点设置就可以用了 然后设置完字体后再添加汉化包
  • [区块链安全-CTF Protocol]区块链智能合约安全实战(已完结)

    区块链安全 CTF Protocol 区块链智能合约安全实战 前言 1 The Lost Kitty 2 RootMe 3 Trickster 4 The Golden Ticket 5 Smart Horrocrux 6 Gas Valv
  • C语言实现三子棋(不是人工智障哈哈哈)

    目前为止学了分支 循环 数组和函数 现在利用这些知识来写一个三子棋小游戏来巩固加深所学哈哈哈 目录 1 测试结果 2 整体思路 3 代码模块解读 1 打印菜单 2 初始化棋盘 3 打印棋盘 4 玩家下棋 5 电脑下棋 6 判断输赢 4 代码
  • ps aux 和ps -aux和 ps -ef的选择

    Linux中的ps命令是Process Status的缩写 ps命令用来列出系统中当前运行的那些进程 ps命令列出的是当前那些进程的快照 就是执行ps命令的那个时刻的那些进程 如果想要动态的显示进程信息 就可以使用top命令 要对进程进行监
  • hive-字符串查找函数 instr和locate

    找不到都是返回0 字符串查找函数 instr 语法 instr string str string substr 返回值 int 说明 返回字符串 substr 在 str 中首次出现的位置 举例 hive gt select instr
  • 国内k8s集群部署的几种方式

    前言 总所周知 由于某种原因 通过官方的方式在国内是无法顺利部署k8s集群的 这里记录下在国内部署的几种方式 部署方式 目前我所了解有以下几种方式 使用kubeadmin通过离线镜像的方式 网上教程和镜像包挺多的 通过厂商集成的方式如 ra
  • QT-----ChartView控件的使用

    chartview可用于制作折线图 饼状图 条行 柱状 直方图系等来体现数据数据变化起浮 以下案例以折线图举例 1 使用ChartView控件 注意点 1 要在pro文件中加入 QT widgets 2 主界面应当使用QApplicatio
  • Java EE学习路线

    Java EE 是在 Java SE 的基础上构建的 它提供Web服务 组件模型 管理和通信API 可以用来实现企业级的面向服务体系结构 service oriented architecture SOA 和 Web 3 0应用程序 目前j
  • 将android项目生成library

    1 先将自己的项目改为library 在app下的build gradle下修改application为library 2 再将applicationId注销 3 点击 sync 4 进入项目文件夹 保留app文件夹 5 进入app文件目录
  • 深度学习实战:利用Xception算法和PaddlePaddle进行鸟类图像识别

    目录 1 引言 2 Xception算法介绍 3 鸟类识别问题介绍 4 数据集 5 使用PaddlePaddle实现Xception
  • Oracle创建新用户以及导入数据表dmp文件

    创建用户名之前 需要以用户管理员身份登陆数据库 1 在创建用户之前 先要创建表空间 其格式为 格式 create tablespace 表间名 datafile 数据文件名 size 表空间大小 例如 SQL gt create table
  • WEB前端网页设计-Bootstrap4 导航栏

    目录 Bootstrap4 导航栏 垂直导航栏 居中对齐的导航栏 不同颜色导航栏 品牌 Logo 折叠导航栏 导航栏使用下拉菜单 导航栏的表单与按钮 导航栏文本 固定导航栏 Bootstrap4 导航栏 导航栏一般放在页面的顶部 我们可以使
  • python中最常用的三大数据提取方法(1)----jsonpath

    1 jsonpath是python最常用提取数据的方法之一 jsonpath用于对json格式的数据进行提取 可以理解为对字典中value值的提取 用来解析多层嵌套的json数据 JsonPath 是一种信息抽取类库 是从JSON文档中抽取
  • 网络三定律:摩尔定律、吉尔德定律和迈特卡夫定律

    网络三定律 摩尔定律 吉尔德定律和迈特卡夫定律 拓展 1 网络论坛三大定律 2 影响世界的三大定律
  • 复杂交通环境感知

    作者 黄浴 编辑 计算机视觉深度学习和自动驾驶 点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 全栈算法 技术交流群 后台回复 领域综述 获取自动驾驶感知定位融合近80篇综述论文 近年来 计算机
  • TIA博途中如何为IO设备分配设备名称

    TIA博途中如何为IO设备分配设备名称 Robot PLC 自动化学院 CSDN博客
  • React 引入ant-design开发指南

    使用create react app搭建react开发环 创建react脚手架 create react app react antd demo 进入react antd demo cd react antd demo 运行react an
  • MYSQL中索引与主键的区别

    MYSQL中索引与主键的区别 索引 索引好比是一本书的目录 可以快速的通过页码找到你需要的那一页 惟一地标识一行 主键 做为数据库表唯一行标识 作为一个可以被外键有效引用的对象 索引是一种特殊的文件 InnoDB数据表上的索引是表空间的一个
  • Unity中的重载和重写

    Unity中的重载和重写 一 重载 二 重写 三 重载和重写的区别 一 重载 重载 两个必须一个可以 参数名必须相同 参数列表必须不同 返回值类型可以不同 代码示例 using System Collections using System