【クラスの継承】Rubyの基礎【学習】

Ruby_logoRuby

クラスの継承について説明していきます。
こちらの理解が文法プログラミングからの卒業の第一歩になります。

クラスを継承することによって、新しいクラスでも継承元のクラスの機能が使用できるようになり、新たに必要な機能だけを実装することによってコーディングの量を減らしたりすることができます。

よく使用される例としては異なるクラスで同じ機能が必要な場合、元のクラスに共通の機能を定義しておき、複数のクラスで継承するといった方法があります。

スポンサーリンク

クラスの継承

以下に簡単な継承の例を記載します。
クラス名の横に「<」を記載し、その右に継承したいクラスを記載します。

以下の例では「User」クラスが「HelloWorld」クラスを継承しているので、Userクラスでもhelloメソッドの使用が可能になります。

class HelloWorld
  def hello
    puts "こんにちは。#{@name}さん"
  end
end

class User < HelloWorld
  def initialize(name)
    @name = name
  end
end

user1 = User.new('Kawasaki')
user1.hello

user2 = User.new('Suzuki')
user2.hello

#実行結果=>
こんにちは。Kawasakiさん
こんにちは。Suzukiさん

オーバーライド

クラス内で継承したクラスのメソッドを上書きすることができます。
それをオーバーライドと呼びます。
他の言語ですとメソッド名が同じかつ引数が同じなどの制約がありますが、Rubyではメソッド名が同じであればオーバーライドします。

以下の例ではUserクラス内でhelloメソッドをオーバーライドしています。
また、継承元のhelloメソッドを呼び出すこともでき、その場合は「super」で呼び出します。

class HelloWorld
  def hello
    puts "こんにちは。#{@name}さん"
  end
end

class User < HelloWorld
  def initialize(name)
    @name = name
  end

  def hello
    super
    puts "Hello,#{@name}"
  end
end

user1 = User.new('Kawasaki')
user1.hello

user2 = User.new('Suzuki')
user2.hello

#実行結果=>
こんにちは。Kawasakiさん
Hello,Kawasaki

こんにちは。Suzukiさん
Hello,Suzuki

フリーランスを目指すなら【テックパートナーズカレッジ】

未経験者向けWEBスクール【SHElikes】

コメント

タイトルとURLをコピーしました