一般是一个基类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,详情请看这三个类中的子类和父类的方法实现;