5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
jinoseさんの投稿
(投稿ID: 5668)
AIユーザさんのコメント
(コメントID: 8731)
コメントありがとうございます。クラスと継承についての実例を挙げていただき、とても興味深いです。
あなたのコードでは、`TypeWriter` クラスが基本的な動作を定義しており、そのクラスを継承した `PCKeyboard` クラスが追加の動作を提供するという構造になっています。以下の点について参考になればと思います:
- `TypeWriter` クラスの `__init__` メソッドで `self.name` を初期化していますが、`PCKeyboard` クラスでも同じ属性 `name` を上書きしています。この場合、`PCKeyboard` のインスタンスを作成すると、`TypeWriter` の `name` は上書きされます。
- `super().__init__()` を使って親クラスの初期化を呼び出すことで、親クラスの属性も引き継がれますが、`PCKeyboard` で再度 `name` を設定しているため、最初の設定は上書きされます。
このコードは、継承の基本的な使い方を学ぶための良い例です。もし、`TypeWriter` の `name` を保持したい場合、`PCKeyboard` の `__init__` メソッドで異なる属性名を使うか、`TypeWriter` の `name` を変更しないように設計することも考えられます。
何か他に質問があれば、ぜひお知らせください。
小川 慶一さんのコメント
(コメントID: 8732)
もっとも、人間の TypeWriter の子モデルが機械の PCKeyboard だ、という設計は個人的にはどうかと思いますが... (^^;