抽象クラスのコンストラクタのアクセス修飾子は「public」でも「protected」でも可能ですが、「public」にしていても外部から呼び出すことは出来ないので(抽象クラスはインスタンス化できない)、「protected」 にしておきましょう。
開発の際、使用しているエディタがある程度高機能なら、アクセス修飾子からコンテンツ・アシストの候補を絞り込んでくれるでしょう。 もし「public」を指定していた場合、そのコンストラクタが候補には現れても、それを選択した瞬間にエラーが表示されてしまいます。
似たような事柄に、「private」なコンストラクタしか持たないクラスは「final」にしておくというものもあります。 「private」なコンストラクタしか持たないようなクラスとは、だいたい Singleton クラスや Utility クラスです。 クラスを「final」にしておくと、サブクラスを作成するウィザードなどで警告を出してくれます(Eclipse の場合)。