1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ポリモーフィズムって何?

Last updated at Posted at 2023-04-15

ポリモーフィズムって何?

さて今回は前回に引き続きオブジェクト指向について勉強していきます。
表題にはポリモーフィズムって何?と書いてますが、前回の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

やっぱり動きは分かってもまだ言語化できるレベルに理解が追いついてない感じがあります。
何かいい学習方法があれば教えてほしいですね。

1
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?