在Android中,MainActivity
已经extends Activity
。
现在我想使用abstract class
说CountdownTimer
。
我怎么能这样做,因为MainActivity
已经扩展了一个类,它不能扩展另一个类。
答案 0 :(得分:1)
您应该使用接口来代替抽象类,因为您可以实现多个接口,甚至可以实现多个接口并扩展类。
唯一需要注意的是接口必须只有抽象方法。
答案 1 :(得分:1)
简短的回答,你不需要扩展另一个类。
Android需要一个Activity才能显示界面。您的活动可以“撰写”CountDownTimer
public class MainActivity extends AppCompatActivity {
private CountDownTimer timer;
@Override
protected void onCreate(Bundle b) {
super.onCreate(b);
setContentView(R.layout.activity_main);
timer = new CountDownTimer(...);
}
}
答案 2 :(得分:0)
Java中不允许多重继承。所以从字面上看,你只能扩展一个类。考虑将您的抽象类更改为接口,因为您可以实现多个接口。
答案 3 :(得分:0)
在Java中,不允许多重继承。它被排除在语言之外作为设计决策,主要是为了避免循环依赖
场景1:如您所知,Java中无法实现以下功能:
public class Dog extends Animal, Canine{
}
场景2:但是以下是可能的:
public class Canine extends Animal{
}
public class Dog extends Canine{
}
这两种方法的区别在于
第二种方法是明确定义的父类或超类,
虽然在第一种方法中,超类是模棱两可的。
考虑Animal和Canine是否都有方法drink().
在第一个场景下,如果我们调用父方法 叫Dog.drink()?
在第二种情况下,我们知道调用Dog.drink()会调用 只要Dog没有覆盖它,犬类饮用方法