17.4 虚函数与模板方法