Rubyでクラスの親クラスを返す方法を現役エンジニアが解説【初心者向け】
初心者向けにRubyでクラスの親クラスを返す方法について解説しています。ここではsuperclassメソッドとancestorsメソッドそれぞれの機能と使い方について学びます。実際の例で処理を確認しましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Rubyでクラスの親クラスを返す方法について解説します。
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。
今回は、Rubyに関する内容だね!
どういう内容でしょうか?
クラスの親クラスを返す方法について詳しく説明していくね!
お願いします!
親クラスとは
クラスの再利用性にとても有効なのがクラスの継承です。
例えばクラスA とクラスB があったとしましょう。クラスBはクラスAを継承しています。この時、クラスB は子クラス(サブクラス)と言い、クラスAは親クラス(スーパークラス)と言います。
つまり、親クラスとは継承関係にあるクラスで継承元になっているクラスを言います。
クラスの親クラスを返す方法
クラスの親クラスを返すメソッドとしては、superclassメソッド、ancestorsメソッドがあります。
superclassメソッド
superclassメソッドはクラスの親クラスを返します。これを先のクラスA(親クラス)、クラスB(子クラス)に当てはめてみると
p B.superclass
#=> A
となります。
ancestorsメソッド
ancestorsメソッドはクラスの親クラスを配列にて自身のクラス、親クラス、親の親クラス、親の親の親のクラスと返します。先ほどの例ですと
p B.ancestors
#=> [B, A, Object, Kernel, BasicObject]
のようになります。
実際に書いてみよう
それでは実際に書いてみましょう。
class Train end class Express < Train end p Express.superclass p Express.ancestors
#=> Train [Express, Train, Object, Kernel, BasicObject]
Trainクラスを親クラス(スーパークラス)、Expressクラスを子クラス(サブクラス)としています。
superclassメソッドではExpressの親クラスであるTrainクラスが表示されています。
ancestorsメソッドでは配列により、まず自身のクラスであるExpressから、その親であるTrainそして親の親であるObject、その親の親の親であるKernel、その親の親の親の親であるBasicObjectと表示されています。
筆者プロフィール
学生時代は会計学専攻。塾講師勤務を経て、企業のCFOとして会社経営に携わる。
会社経営から一線を退いた後、インフラエンジニアの妻の勧めでプログラミングを
独学で始め、プログラミングセミナーなど転々としながら、開発案件に携わるようになる。
現在、フリーランスとして活動しながらテックアカデミーのメンターも勤めている。
(筆者: 町田 耕)
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。