我们如何创建抽象的CountDownTimer类的对象

时间:2019-01-20 11:51:39

标签: android

我是Android新手,目前正在使用计时器。

https://developer.android.com/reference/android/os/CountDownTimer中我可以理解CountDownTimer是一个抽象类。

根据我对抽象类的理解,我们无法创建抽象类的对象,通常,如果我们尝试创建抽象类的对象,则IDE将显示错误。

但是我尝试的以下代码未显示任何错误。

我检查了stackoverflow和其他站点,发现我能够创建CountDownTimer对象,但找不到任何解释。

下面是我的代码的摘录。

public void startTimer() {
   CountDownTimer c =  new CountDownTimer(30000, 1000) {
        @Override
        public void onTick(long millisUntilFinished) {
            timerTextView.setText(Long.toString(millisUntilFinished / 1000) 
+ "s");
        }

        @Override
        public void onFinish() {
            playAgain.setVisibility(View.VISIBLE);
            result.setText("Done");
        }
    };
   c.start();
}  

任何有关如何创建CountDownTimer类对象的说明都会有所帮助。

1 个答案:

答案 0 :(得分:0)

您的代码实际上正在做的是创建一个内部匿名类,该类扩展了CountDownTimer,实现它并创建该“新”类的对象。

CountDownTimer是抽象的,所以是的,您不能仅单独执行“ new CountDownTimer(30000,1000)”。

但是您的代码将其打开,并实现了“ onTick”和“ onFinish”功能(它们是CountDownTimer类中唯一的抽象功能。