はじめに
本記事では、継承
について記述します。
(まず、スプラトゥーンとはイカのゲームです。)
継承
クラスを継承
することができ、
もともと存在するクラスから新しいクラス
を継承することができます。
親クラス
↓継承
子クラス
「スプラトゥーン」
武器クラス
↓継承
スプラシュータークラス
なぜクラスの継承が必要か
共通の部分をまとめる
ことができるため、効率的
が良いからです。
先ほど、スプラトゥーン
の武器クラス
を例に挙げましたが、
さらにいうと以下のように分けられます。
(注意)継承の継承、所謂複数の継承
はRuby
ではできない(後述)です。
武器クラス
↓継承
シュータークラス、ローラークラス、パブロクラスなど
シュータークラス
↓継承
スプラシュータークラス、プロモデラークラス、NZAPクラスなど
スプラシュータークラス
↓継承
スプラシューター(無印)クラス、スプラシューターコラボクラス、スプラシューターベッチュークラスなど
継承の書き方
子クラス<親クラス
と書きます。
class SplaShooter < Shooter
end
class Shooter
def initialize(weapon_type, one_power)
@name = weapon_type
@power = one_power
end
def info
puts "武器タイプ:#{@name} 攻撃力:1発#{@power}ダメージ"
end
end
class SplaShooter < Shooter
end
spla_shooter = SplaShooter.new("スプラシューター系", 35)
spla_shooter.info
# 武器タイプ:スプラシューター系 攻撃力:1発35ダメージ
SplaShooterクラス
はShooterクラス
を継承していることから、
インスタンス変数やインスタンスメソッドを使用しなくても、問題ありません。
Rubyは単一継承
ここで、重大なことが発覚しました。
以下のサイトにて。
はじめてのRuby!モジュール(module)の使い方を解説!
Rubyは単一継承と呼ばれる言語設計になっています。
要はクラスを一つしか継承できないという設計です。
そのため、クラスと合わせて、モジュールを使用するすることで、擬似的に多重継承を行っているようにコードを書くことができます。
モジュール
を使用することにより、擬似的に複数継承ができる
とのことです。
後日、モジュールの深堀をします。
申し訳ございません。
以上です。
終わりに
前述の通り、モジュール
の理解をしたいと思います。
以下参考サイトです。
【Ruby入門】クラスの継承まとめ
明日も頑張ります!