抽象类的protected和public构造函数有什么区别?有差异吗?