Unity中的重载和重写
Posted Z_hongli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity中的重载和重写相关的知识,希望对你有一定的参考价值。
Unity中的重载和重写
一、重载
重载:(两个必须一个可以)
- 参数名必须相同
- 参数列表必须不同
- 返回值类型可以不同
代码示例:
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 + "你好!");
结果:
二、重写
重写:(三个必须)
- 函数名必须相同
- 参数列表必须相同
- 返回值类型必须相同
代码示例:
父类
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+"你好,我是重写方法");
结果:
三、重载和重写的区别
- 多态、封装、继承的位置不同,重载在同一定义域中(如在同一类中),重写在子类中。
- 定义不同,重载两个必须一个可以,重写三个必须
- 调用方式不一样,重载相同对象可以调用不同参数,重写不同对象调用相同参数
- 多态时机不同,重载编译时多态,重写运行时多态。
以上是关于Unity中的重载和重写的主要内容,如果未能解决你的问题,请参考以下文章