一般是一個基類BaseActivity,裏面有未實現方法initView,initController等等,並且這些方法在BaseActivity中的生命週期(Activity一定會走的生命回調,onCreate,OnResume等等)中使用;那麼在子類Activity中重寫這些方法即可,無需在子類中使用這些方法,既會被父類自動調用
父類:
首先,父類有一個抽象的方法,並且在自身的其他方法中調用了
public abstract class Baba{
public abstract String say();
public void dosomething(){
say();
}
}
父類Baba,有一個say的抽象方法沒有實現,並且在dosomething中調用了。如果直接調用dosomething方法會報錯;
子類:
public class Erzi extends Baba{
public String say(){
return "hahaha";
}
}
然後在另一個類中調用父類的dosomething方法,實際上是實現了子類中自己實現的say方法;
Erzi erzi=new Erzi();
erzi.dosomething();
一般用於父類的抽象方法或(方法)由子類來實現,如果這個方法是有返回值的,就可以將返回的值傳給父類中的方法(一般用法);
還有一種可能:父類的抽象方法(方法)由子類來實現,這個方法是沒有返回值的,就代表父類只想讓子類進行某些操作而不是返回值給父類使用;
實戰場景:有一個界面,大部分的框架都是相同的,但是內容不一樣;父類內容相同的部分可以在父類內部實現,內容不同但是框架相同可以抽象出來交給子類去實現,子類將不同內容但是相同框架的部分返回給父類,這樣父類就可以將這些內容作爲自己的東西進行整體的構建;MobileFirewallFragment,FirewallListFragment,BaseFragment,詳情請看這三個類中的子類和父類的方法實現;