2024-10-03
🔷TypeScriptの学習_8 (クラス2)
クラスの継承
クラスの継承とは、既存のクラスのメンバ(プロパティやメソッド)を丸ごと含めた別のクラスを定義すること
元となる既存(継承元)のクラスを親クラス、継承して新しく定義するクラスを子クラスといい、親子関係が成立する
クラスの継承にはextendsキーワードを使用する
code:継承の構文
class 子クラス名 extends 親クラス名 {
....
}
子クラスの定義時には親クラスで定義されたプロパティやメソッドについてそのまま使用する場合は新たに定義する必要はない
子クラスに定義されていなくても親クラスに定義されたプロパティやメソッドは呼び出しが可能
あくまでも親クラスから呼び出しているだけなのでアクセス修飾子を設定する際は注意が必要(詳細は下記にて)
親クラスのコンストラクタで引数が設定されていれば、子クラスのインスタンス化時にも引数を渡す必要がある
クラス継承時のアクセス修飾子
親クラスのすべてのメンバを子クラスは引き継ぐが、これは親クラスのメンバにアクセスできるというだけなので、アクセス修飾子によって子クラスからのアクセスの範囲にも制限がかかる
privateだと親クラス内からのみアクセス可能で子クラスからアクセスができなくなる
子クラスからはアクセスができて、クラス外からはアクセスできなくするためにprotectedというアクセス修飾子がある
public(もしくは記述なし):2024-09-30での学習の通り、どこからでもアクセスが可能
➜子クラスからでもアクセスできる
private:2024-09-30での学習の通り、クラス内でのみアクセス可能
➜子クラスはクラス外になるのでアクセス不可
protected:クラス内と、子クラスからのみアクセス可能
➜子クラスからはアクセス可能で、クラス外からはアクセス不可
ソースコードファイル:
#TypeScript