ポリモーフィズムって何?
さて今回は前回に引き続きオブジェクト指向について勉強していきます。
表題にはポリモーフィズムって何?と書いてますが、前回のclassに引き続きオブジェクト指向設計に重要な
ポリモーフィズムと継承について書いていきます。
ポリモーフィズム
"オブジェクト指向でなぜつくるのか"によるとポリモーフィズムはメソッドを呼び出す側を共通化するということらしいです。
よくオブジェクト指向について説明している資料みると動物の鳴き声が出てくるのでそれに倣って…
# 動物の鳴き声
class Animal
def make_sound(sound)
puts sound
end
end
my_animal = Animal.new
my_pig = Animal.new
my_dog = Animal.new
my_animal.make_sound("The animal makes a sound")
my_pig.make_sound("The pig oinks")
my_dog.make_sound("The dog barks")
という感じで、一つのメソッドに対して別の引数を渡したときに別の振る舞いをすることができるような状態をポリモーフィズムというのかな?
間違ってたら誰かコメントください💦
→コメントありがとうございます!やっぱり違うみたい。もうちょい勉強しないと
継承
継承を使用すると、サブクラスがスーパークラスのメソッドやプロパティを継承することができます。これにより、コードの再利用性が高くなり、コードのメンテナンスが容易になります。
#
class Animal
def make_sound
puts "The animal makes a sound"
end
end
class Pig < Animal
def make_sound
puts "The pig oinks"
end
end
class Dog < Animal
def make_sound
puts "The dog barks"
end
end
my_animal = Animal.new
my_pig = Pig.new
my_dog = Dog.new
my_animal.make_sound
my_pig.make_sound
my_dog.make_sound
やっぱり動きは分かってもまだ言語化できるレベルに理解が追いついてない感じがあります。
何かいい学習方法があれば教えてほしいですね。