派生クラスを定義する際には、基本クラス名を書く必要がありますが、
それと同時にアクセス指定子も必要です。
このアクセス指定子は、派生時に基本クラスのクラスメンバの
アクセス指定子をどのように継承するか決めるモノです。
基本クラスに元々定義してあるクラスメンバのアクセス指定子を、
派生時に変更する必要がある場合に有効な機能です。
public指定の場合、基本クラスのクラスメンバのアクセス指定子を
そのまま継承します。(もっとも一般的な継承。)
privateメンバは、派生クラスからはアクセスできません。
protected指定の場合、
基本クラスのpublicメンバは、派生時に、
全てprotectedメンバとして引き継がれます。
protectedメンバのアクセス指定子はそのまま継承します。
privateメンバは、派生クラスからはアクセスできません。
private指定の場合、基本クラスのpublicメンバと
protectedメンバは、派生時に全てprivateメンバとして引き継がれます。
privateメンバは、派生クラスからはアクセスできません。
なお、この継承時のアクセス指定子を省略すると、
private指定として処理されます。
ただし、派生クラスのクラスキーワードがstructで定義してある場合は、
public指定として処理されます。
省略しない方が一般的な書き方だと思います。