在android中,MainActivity
已經是extends Activity
。我想用abstract class
說CountdownTimer
。如何在我們的類中實現抽象類的方法如果我們的類已經擴展了其他一些類
我該怎麼做,因爲MainActivity
已經擴展了一個類,它不能擴展另一個類。
在android中,MainActivity
已經是extends Activity
。我想用abstract class
說CountdownTimer
。如何在我們的類中實現抽象類的方法如果我們的類已經擴展了其他一些類
我該怎麼做,因爲MainActivity
已經擴展了一個類,它不能擴展另一個類。
簡短的回答了 類犬喝法,你不需要擴展另一個類。
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(...);
}
}
因爲您可以實現多個接口,甚至可以實現多個接口並擴展一個類,所以您應該使用接口來代替抽象類。
唯一需要注意的是接口必須只有抽象方法。
Java中不允許多繼承。所以從字面上看,你只能擴展一個類。考慮將您的抽象類更改爲接口,因爲您可以實現多個接口。
在Java中,不允許多重繼承。它被排除在語言作爲設計的決定,主要是爲了避免循環依賴
方案1:正如你所瞭解到以下是不可能在Java中:
public class Dog extends Animal, Canine{
}
方案2:然而,以下是可能的:
public class Canine extends Animal{
}
public class Dog extends Canine{
}
在這兩種方法的區別在於,在
第二種方法有一個明確界定的父母或超級ç lass,
而在第一種方法中,超類是不明確的。
考慮一下,如果動物和犬有兩種方法drink().
在第一種情形下,其父類的方法,如果我們 稱爲Dog.drink將被稱爲()?
在第二個方案中,我們知道調用Dog.drink()將調用只要狗沒有覆蓋它