准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。模板模式是很常用的模式,用于继承的代码复用。
示例如下:
public class Template {
public static void main(String[] a){
Template template=new Template();
Person 小张 = template.new Child("小张");
小张.talk();
Person 大明 = template.new Student("大明");
大明.talk();
}
abstract class Person{
protected String name;
public Person(String name) {
this.name = name;
}
public void talk(){
System.out.println(getType()+"说话了");
}
abstract String getType();
}
class Child extends Person{
public Child(String name) {
super(name);
}
@Override
String getType() {
return "小孩"+name;
}
}
class Student extends Person{
public Student(String name) {
super(name);
}
@Override
String getType() {
return "学生"+name;
}
}
}
网友评论