在实例化子类时从超类调用方法

时间:2015-07-01 06:38:55

标签: java c# oop inheritance abstract-class

如何创建Class,无论哪个类扩展Class,都会自动调用/调用方法。如果它听起来有误导性,请编辑我的问题。我只是展示一些样品

示例1:

当你扩展monobehavior时,你会自动调用你的方法。我不知道我是不对的。

public class MyController : MonoBehaviour { 

   void Start()
    {     
      //Being Called Once
    }

    void FixedUpdate()
    {   
    //Being Called every update
}

在libgdx上

Game implements ApplicationListener {


    @Override
    public void render () {
        //Called multiple times
    }

}

正如我所理解和尝试的那样实现我的自我

public abstract Test{

        protected Test(){
            onStart();
        }


        public abstract void onStart();
}


public class Test2 extends Test{

    public Test2(){

    }

    @Override
    public void onStart(){
        //Handle things here
    }

}

对不起,但我真的不知道它是如何工作的,或者你称之为这种技术。

特别是在统一中,当创建扩展Monobehavior的多个控制器时,将调用已实现的所有控制器方法。谁在调用这个类和方法?关于此的一些参考或书籍将是一个很大的帮助。

注意:请编辑我的标题,以便在此使用正确的术语。感谢

1 个答案:

答案 0 :(得分:2)

  

对不起,但我真的不知道它是如何工作的,或者你称之为这种技术

Java示例中,onStart方法被称为钩子或回调方法。

维基百科将hooking定义如下:

  

在计算机编程中,术语钩子涵盖了一系列技术,用于通过拦截在软件组件之间传递的函数调用或消息或事件来改变或增强操作系统,应用程序或其他软件组件的行为。处理此类截获的函数调用,事件或消息的代码称为“钩子”

维基百科定义callback如下:

  

在计算机编程中,回调是一段可执行代码,它作为参数传递给其他代码,期望在某个方便的时候回调(执行)参数。调用可以像在同步回调中​​一样立即执行,也可以在以后的时间发生,就像在异步回调中那样

Test类中实例化Test方法的任何类都将导致调用onStart的{​​{1}}方法。示例:

instance

话虽如此,我不确定在Test test = new Test2();//calls onStart in Test2. 的情况下是谁调用这些方法,但是您对如何在MonoiBehavior中实现hookcallback的一般理解是对的。