模板设计模式:
从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板。从而避免了子类设计的随意性。子类在抽象类的基础上进行扩展、改造。
模板里面定义执行的过程(有些功能自己可以实现 有些必须子类实现)
抽象类使用abstract修饰
抽象类不能被实例化
抽象类里面可以定义成员变量/方法
抽象方法必须使用abstract修饰,而且不能实现,只能在子类中实现
子类继承于抽象类时:
1).子类实现抽象类里面的抽象方法
2).若不想实现,可以将自己也变成抽象类
MyClass.java
public class MyClass {
public static void main(String[] args){
//创建一个抽象类
//MainActivity mActivity = new MainActivity();
//QQZoneActivity qqActivity = new QQZoneActivity();
}
}
MainActivity.java
public class MainActivity extends Activity{
//抽象方法必须实现
public void onCreate() {
System.out.println("创建首页的界面");
}
//子类可以重写父类的方法
public void onResume() {
System.out.println("界面启动了,开始交互");
}
}
QQZoneActivity.java
public class QQZoneActivity extends Activity{
public void onCreate() {
System.out.println("布置QQ空间的页面");
}
public void onDestory() {
System.out.println("销毁了");
}
}
Activity.java
public abstract class Activity {
private String className;
public Activity(){
//子类必须实现的方法
onCreate();
//可以选择实现的方法
onStart();
onResume();
onPause();
onStop();
onDestory();
}
//界面布局
public abstract void onCreate();
//开始启动
public void onStart(){
}
//界面显示出来了 可以交互了
public void onResume() {
}
//暂停
public void onPause(){
}
//已经停止
public void onStop(){
}
//销毁
public void onDestory(){
}
}