java不能覆盖步骤,正在尝试指定更低的访问权限

java不能覆盖方法,正在尝试指定更低的访问权限
哪位大神抽空看一眼,找了半天也没发现错误啊,悲剧……
抽象类
public abstract class PizzaStore{
public Pizza orderPizza(String type){
Pizza pizza;

pizza=createPizza(type);

pizza.prepare();
pizza.bake();
pizza.cut();
pizza.box();

return pizza;
}
protected abstract Pizza createPizza(String type);
}

子类
public  class NYPizzaStore extends PizzaStore{
Pizza createPizza(String item){
if(item.equals("cheese")){
return new NYStyleCheesePizza();
}else return null;
}
}

出错报告
java不能覆盖步骤,正在尝试指定更低的访问权限
------解决思路----------------------
子类重写父类方法时,方法的访问权限必须等于或者大于父类的方法访问权限。
也就是说如果你父类方法用protected修饰,子类则只能用protected和public修饰,不能使用private
------解决思路----------------------
子类中Pizza createPizza(String item)这个方法的权限低了,不是类的权限低了
------解决思路----------------------
把子类中的createPizza方法的访问控制修饰符改为public
------解决思路----------------------
你是默认访问限制啊,不是public
------解决思路----------------------
访问权限 有四个修饰符 public protected  default private
Pizza createPizza(String item){你这里是default