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

Ker*_*pee 5 c# java oop inheritance abstract-class

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

例1:

当你扩展单行为时,你会自动调用你的方法.我不知道我是不对的.

public class MyController : MonoBehaviour { 

   void Start()
    {     
      //Being Called Once
    }

    void FixedUpdate()
    {   
    //Being Called every update
}
Run Code Online (Sandbox Code Playgroud)

在libgdx上

Game implements ApplicationListener {


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

}
Run Code Online (Sandbox Code Playgroud)

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

public abstract Test{

        protected Test(){
            onStart();
        }


        public abstract void onStart();
}


public class Test2 extends Test{

    public Test2(){

    }

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

}
Run Code Online (Sandbox Code Playgroud)

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

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

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

CKi*_*ing 2

抱歉,但我仍然不知道它是如何工作的,或者你怎么称呼这种技术

在您的Java示例中,该onStart方法被称为挂钩或回调方法。

维基百科对挂钩的定义如下:

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

维基百科定义回调如下:

在计算机编程中,回调是一段可执行代码,它作为参数传递给其他代码,预计会在某个方便的时间回调(执行)该参数。调用可能是立即发生的(如同步回调中​​),也可能稍后发生(如异步回调中)

任何Test从类中实例化方法的类Test都会导致调用onStart该方法。instance例子 :

Test test = new Test2();//calls onStart in Test2.
Run Code Online (Sandbox Code Playgroud)

话虽这么说,我不确定谁在情况下调用这些方法MonoiBehavior,但您对如何实现 ahook或 a callbackin的一般理解Java是正确的。