unity中 继承,多态,override 的问题1
来源:互联网 发布:java object对象 编辑:程序博客网 时间:2024/05/18 03:45
在unity里面,如果派生类没有update方法,该派生类会
用其父类的update()方法。比如:
baseclass.cs
using UnityEngine;
using System.Collections;
public class baseclass : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.Translate (transform.right*Time.deltaTime*1.0f);
}
}
deriveclass.cs
using UnityEngine;
using System.Collections;
public class deriveclass : baseclass {
// Use this for initialization
void Start () {
}
// Update is called once per frame
//void Update () {
//}
}
把deriveclass.cs拖到一个gameobject将会移动。这说明update()在顶级基类中是abstract类型,这也是多态技术的应用之一。
我另外做了个实验验证,这是在monodevelop中的一个独立C#控制台程序,输出 C,也就是说会调用最后一个实现的f().
using System;
using System.Collections;
using System.Collections.Generic;
namespace curious
{
abstract class A{
public abstract void f();
}
class B:A{
public override void f(){
Console.WriteLine ("B");
}
}
class C:B{
public override void f(){
Console.WriteLine ("C");
}
}
class D:C{
}
class MainClass
{
public static void Main (string[] args)
{
D d = new D ();
d.f ();
}
}
}
由此也可猜测其他几个在顶级基类中也很可能是abstract方法。可自己实验,。
- unity中 继承,多态,override 的问题1
- C++中继承技术引发的问题:重载(overload),覆盖(override)和隐藏(hide)的区别
- C++中继承技术引发的问题:重载(overload),覆盖(override)和隐藏(hide)的区别
- 【Unity&继承】关于继承的一些问题
- C# Tips:在继承中,new 与 override 的区别
- C#继承中virtual、override、new的使用
- Unity中类的关系继承图
- @Override遇到的问题
- @Override遇到的问题
- @Override遇到的问题
- @Override遇到的问题
- @Override遇到的问题
- Unity中遇到的问题
- unity Animator Override Controller的使用
- C++中Override覆盖问题
- eclipse环境下,继承父类或接口的方法,写上@Override报错问题
- java中override和java编译器compiler版本的问题
- C#中Abstract 、Virtual和Override的使用,类的继承
- 联播大业王恒:炒股要有三种境界
- YII学习初级
- iOS 7毛玻璃模糊效果
- vc++加载透明png图片的两种方法-GDI+和CImage
- 对《JCP》"3.4.2"的理解
- unity中 继承,多态,override 的问题1
- 夏敏捷主编的书(2008-2014,八本)
- CRC校验码的源代码
- MFC使用自定义资源加载PNG
- 等待
- 舞钢大业投资担保王恒:央行再度定向降准力挺“三农”,小微覆盖大部分的城市商业银行,非农业企业和非县农村合作银行
- QString与中文问题
- 设计模式六大原则(2):里氏替换原则
- oracle 密码过期的解决方法