プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

自分の市場価値を知りたい人にオススメの記事です

【すぐできる】エンジニアとしての市場価値を診断してみよう!

エンジニアが市場価値を把握しておくべき理由 エンジニアは、なぜ市場価値を把握しておいた方がいいのか、まずはその理由について説明します。 エンジニアの市場価値を決める要素 エンジニアの市場価値を決める要素について説明します。 経験業務と年数 ...

続きを見る

私がオススメするプログラミング教材です

私がおすすめするプログラミング教材のまとめ【書籍と動画】

これからエンジニアになりたい人へ向けた本 私が書いた、「これからエンジニアになりたい人」に向けた本です。 最近、世間ではプログラミングの必要性が声高く叫ばれるようになりました。 子供向けには2021年からプログラミング教育が義務教育で実施さ ...

続きを見る

【Ruby入門】クラスの継承の使い方

更新日:

記事の内容


この記事では、クラスの継承やオーバーライドを紹介します。

クラスの継承

クラスの継承を試してみよう

クラスの継承とは、既に定義済みのクラスやメソッドを再利用するようなイメージです。
クラスの継承をするためには「<」というキーワードを使います。
コードを見た方がわかりやすいと思うので、実際にコードを見ていきましょう。

Animalクラスを継承したDogクラスでも、runメソッドを使えることがわかります。
このように継承元である親クラスのメソッドを使えるようになるのが、継承のメリットです。
ただし、継承は一つのクラスしかできないので注意して下さい。
Dogクラスは、既にAnimalクラスを継承しているので、他のクラスを継承することはできません。

initializeメソッドの動作を確認してみよう

initializeの動作も確認してみます。
Dogクラスにinitializeが定義されていない場合は、親クラスのinitializeを使うことができます。

次にDogクラスにもinitializeを実装してみます。
子クラスであるDogクラスにinitializeが定義されている場合は、子クラスのinitializeが優先されます。

子クラスでinitializeを定義しつつ、親クラスのinitializeを使いたい場合は、以下のように「super」キーワードを使います。

オーバーライド

次に親クラスにあるメソッドの動作を変更する「オーバーライド」というテクニックを紹介します。
親クラスと継承先のメソッド名は同じですが、動作は異なることがわかります。
このように、同じメソッド名だけど、子クラスでメソッドを再定義することを「オーバーライド」と呼びます。

親クラスのメソッドを使いつつ、子クラスで動作を追加したい時もあるはずです。
その時には、「super」キーワードを使います。

まとめ

この記事では、クラスの継承やオーバーライドについて説明しました。
クラスの概念が曖昧な人は、この記事を読む前に、先にクラスの理解を深めた方がいいかもしれません。

Good luck for your engineer life!

この記事が面白かった人は、こちらの記事も読んでみて下さい。

Ruby初心者から抜け出したい人に、オススメの本です



Rubyをより詳しく勉強したい人には、この記事がオススメです

Rubyの学習でおすすめの本と動画(Udemy)【2022年最新】

▼ Ruby on Railsについては、この記事で紹介しています 初心者向け【入門編】 脱初心者のための問題集 Ruby編 Rubyの基礎的な文法を学習し終わった後、次に何をしようかと考えている人にオススメの本です。 基礎を学んだ後にする ...

続きを見る


Ruby on Railsをより詳しく勉強したい人には、この記事がオススメです

Ruby on Railsの学習でおすすめの本と動画(Udemy)【2022年最新】

初心者向け Ruby on Rails 5.0 初級① Ruby on Railsは、基本的には初心者向けではありません。 ただし、これらの本は、比較的、簡単に書かれています。 プログラミング経験が浅くてRailsを勉強したい人は、この本か ...

続きを見る


Gitをより詳しく勉強したい人には、この記事がオススメです

Gitの学習でおすすめの本【2022年最新】

漫画?でわかりやすく学ぶ入門書の定番 改訂2版 わかばちゃんと学ぶ Git使い方入門 Gitの入門書の定番と言っても差し支えありません。 絵や図で解説している本なので、わかりやすく頭に入ってきます。 サルでもわかるGit入門 Gitの解説サ ...

続きを見る

関連コンテンツ

-Ruby, プログラミング

Copyright© プログラミング道場 , 2022 All Rights Reserved Powered by AFFINGER4.