java - Android/Java - 覆盖

标签 java android oop overriding

我有两个类“BaseActivity”和“ChildActivity”,即 ChildActivity 继承 BaseActivity。 问题:在我的以下代码 fragment 中,每当我按左按钮时 - 它都会记录我“我来自 child Activity ”。如果我想默认调用 SUPER CLASS 功能,我需要做什么。

public class BaseActivity extends Activity implements OnClickListener {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    };

    protected void configureTitleBar(String title) {
        ImageButton imgLeftButton = ((ImageButton) findViewById(R.id.actionBarLeftButton));
        imgLeftButton.setOnClickListener(BaseActivity.this);
    }
    @Override
    public void onClick(View v) {
        if(v.getId() == R.id.actionBarLeftButton){
            printCustomLog("I am From Base");
        }
    }
}

child Activity :

public class ChildActivity extends BaseActivity implements OnClickListener{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_child);

        configureTitleBar("MyTitle");
    }
    @Override
    public void onClick(View v) {

        if(v.getId() == R.id.actionBarLeftButton){
            printCustomLog("I am From Child Activity");
        }
    }
}

最佳答案

如果你想获得父类(super class)功能,你可以

a) 根本不重写 onClick() 方法(但我认为这不是您想要的)
b) 从子类中的 onClick() 调用 super.onClick(v)

您的ChildActivity中的代码将是。

@Override
public void onClick(View v) {
    // Check some condition if you want to handle it in Child class
    if(condition){
        printCustomLog("I am From Child Activity");
    }
    // Else, as default, call Base class's onClick()
    else{
        super.onClick(v);
    }
}

关于java - Android/Java - 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37763364/

相关文章:

java - android 如何处理url中的空格

Java 到 Kotlin_Gson.Json 转换错误

java - 什么时候应该使用封装?

python - 从同一类定义中实例化 python 类

java - 在目录内的所有文件中搜索字符串

java - Apache、Tomcat 和 mod 代理 http 设置

java - 如何用 Java (ID3) 编辑 MP3 文件?

android - 如何在 CoroutineWorker 中获取 WorkRequest Id

android - Nexus 4 上的极端相机延迟

php - 如何在 PHP 中获取当前类的所有属性而不是其父类