类型模式修改为protected，子类使用。