Java 在实例化子类时从超类调用方法
如何创建一个Java 在实例化子类时从超类调用方法,java,c#,oop,inheritance,abstract-class,Java,C#,Oop,Inheritance,Abstract Class,如何创建一个类,无论哪个类扩展了类,都会自动调用方法。如果我的问题听起来有误导性,就编辑一下。我会展示一些样品 例1: 在unity中,当您扩展方法时,将自动调用。我不知道我是否正确 public class MyController : MonoBehaviour { void Start() { //Being Called Once } void FixedUpdate() { //Being Called e
类
,无论哪个类扩展了类
,都会自动调用方法。如果我的问题听起来有误导性,就编辑一下。我会展示一些样品
例1:
在unity中,当您扩展方法时,将自动调用。我不知道我是否正确
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
}
}
我很抱歉,但我仍然不知道它是如何工作的,或者你称之为什么技术
特别是在unity中,当创建扩展了单行为的多个控制器时,将调用所有已实现的控制器方法。谁在调用这些类和方法?一些关于这方面的参考书或书籍会很有帮助
注意:请编辑我的标题,以便在本文中使用正确的术语。谢谢
很抱歉,我还是不知道它是怎么工作的,或者你把它叫做什么
在您的Java
示例中,onStart
方法被称为钩子或回调方法
维基百科的定义如下:
在计算机编程中,挂钩一词涵盖了一系列技术,这些技术用于通过截获函数调用、消息或软件组件之间传递的事件来改变或增强操作系统、应用程序或其他软件组件的行为。处理此类截获函数调用、事件或消息的代码称为“钩子”
维基百科对a的定义如下:
在计算机编程中,回调是作为参数传递给其他代码的一段可执行代码,这些代码希望在方便的时候回调(执行)参数。调用可以像在同步回调中那样立即进行,也可以像在异步回调中那样在稍后的时间进行
从Test
类实例化Test
方法的任何类都将导致调用实例的onStart
方法。例如:
Test test = new Test2();//calls onStart in Test2.
话虽如此,我不确定是谁在MonoiBehavior
的情况下调用这些方法,但您对如何在Java
中实现hook
或回调的一般理解是正确的。。所以这就是钩住了人。@Keropee在一般意义上是的。它也被称为回调
。虽然它们有不同的含义,但现在可以互换使用。谢谢@Chetan Kinger,这对我应该从哪里开始学习有很大帮助。我会找到办法的。@Keropee请记住,你并不总是在构造函数中调用你的hooks
。如果不希望在创建实例时立即触发这些钩子,那么这些钩子也可能在具体方法中调用。确定。谢谢你的提示