以前の記事では、ポケモンを例にクラスとインスタンスについて紹介しました。
今回は継承について説明します。
継承
継承とは、あるクラスのメンバ変数やメソッドを、別のクラスが引き継ぐことを言います。
親クラスを子クラスが継承するという言い方もします。
例えば、ピカチュウもニャースも、ポケモン図鑑番号、名前、レベルといった情報を持っています。
これを、ポケモンというクラスにしてしまい、ピカチュウやニャースといったクラスで継承させます。
そして、その種族に固有の情報(ポケモン図鑑番号など)はピカチュウ、ニャースといったクラスにそれぞれ持たせます。
継承はオブジェクト指向の中では分かりやすい概念かと思います。
プログラミング言語Rubyで書いてみる
ポケモンというクラスを作り、ピカチュウやニャースといったクラスに継承させます。
# クラス定義
class Pokemon
# pokedex は「ポケモン図鑑番号」、name は「名前」、level は「レベル」に対応
attr_accessor :pokedex, :name, :level
end
class Pikachu < Pokemon
def initialize(name, level)
self.pokedex = 25
self.name = name
self.level = level
end
end
class Meowth < Pokemon
def initialize(name, level)
self.pokedex = 52
self.name = name
self.level = level
end
end
# インスタンス生成
pikachu = Pikachu.new('サトシのピカ', 100)meowth = Pikachu.new('ロケットだん', 100)
# インスタンスの情報を出力
p pikachu.inspect
p meowth.inspect
出力例
"#<Pikachu:0x000055e1f3e01070 @pokedex=25, @name=\"サトシのピカ\", @level=100>" "#<Meowth:0x000055e1f3e01020 @pokedex=52, @name=\"ロケットだん\", @level=100>"
コメント