カテゴリ: Kotlin 更新日: 2026/01/29

Kotlinの継承の基本!親クラス・子クラスの関係とoverrideの使い方を初心者向けに徹底解説

Kotlinの継承の基本!親クラス・子クラスの関係とoverrideの使い方
Kotlinの継承の基本!親クラス・子クラスの関係とoverrideの使い方

先生と生徒の会話形式で理解しよう

生徒

「Kotlinの継承ってどういうことなんですか?親クラスとか子クラスって聞くけど難しそう…」

先生

「Kotlinの継承は、あるクラスの機能を別のクラスが引き継いで使える仕組みです。親から子に知識を渡すようなイメージですね。」

生徒

「なるほど。でも、実際にどうやって書けばいいのか分かりません…」

先生

「それでは、Kotlinの継承の書き方や、overrideの使い方を一つずつ丁寧に見ていきましょう!」

1. Kotlinにおける継承(けいしょう)とは?

1. Kotlinにおける継承(けいしょう)とは?
1. Kotlinにおける継承(けいしょう)とは?

プログラミングで「継承(けいしょう)」とは、あるクラスが持つ機能や性質を、別のクラスに引き継いで使えるようにする仕組みのことです。

たとえば、動物には「眠る」「鳴く」といった共通の動きがありますよね。この共通部分をまとめて「動物」という親クラスにしておき、それをもとに「犬」「猫」などの子クラスが作られる、というイメージです。

整理すると、親になるクラスをKotlinでは「スーパークラス」、そこから生まれる子のクラスを「サブクラス」と呼びます。スーパークラスの機能をコピーして使えるので、同じ処理を何度も書かなくてもよくなり、とても便利です。

たとえば、こんな簡単なコードで考えてみましょう。


open class Animal {
    fun sleep() {
        println("動物が眠っています")
    }
}

class Dog : Animal() // Animalを継承

Dogクラスには何も書いていませんが、Animalを継承しているので、中にあるsleep()をそのまま使うことができます。


fun main() {
    val dog = Dog()
    dog.sleep()
}

動物が眠っています

このように、継承を使うことで共通部分をまとめて再利用でき、コードがスッキリします。まずは「親クラスの機能を、子クラスがそのまま使える仕組み」と覚えておけば大丈夫です。

2. 親クラスと子クラスを定義する基本構文

2. 親クラスと子クラスを定義する基本構文
2. 親クラスと子クラスを定義する基本構文

実際に継承を書くときは、まず「親クラス」を作るところから始まります。Kotlinでは、親クラスをそのままでは継承できないため、openキーワードをつけることで「このクラスは継承していいよ」という宣言をします。


open class Animal {
    fun sleep() {
        println("動物が眠っています")
    }
}

これがスーパークラスです。中には「動物なら誰でも持っていそうな行動」をまとめておくイメージです。

次に、Animalを継承したサブクラスを作ります。書き方はとてもシンプルで、クラス名の後ろに: 親クラス名()と書くだけです。


class Dog : Animal() {
    fun bark() {
        println("ワンワン!")
    }
}

たったこれだけで、DogAnimalの持っているsleep()を自動的に使えるようになります。

実際に呼び出すとどうなるのか、確認してみます。


fun main() {
    val dog = Dog()
    dog.sleep() // 親クラスの機能
    dog.bark()  // 子クラス固有の機能
}

動物が眠っています
ワンワン!

このように、親クラスで定義した関数を、子クラス側で特別な設定なしに使えるのが継承の大きな特徴です。「親クラスで共通の処理」「子クラスで自分だけの処理」と分けて書くことで、コードが整理しやすくなります。

3. 子クラスで親クラスの関数を使う

3. 子クラスで親クラスの関数を使う
3. 子クラスで親クラスの関数を使う

親クラスの機能は、子クラスでもそのまま使うことができます。


fun main() {
    val dog = Dog()
    dog.sleep()
    dog.bark()
}

眠っています
ワンワン!

sleep()は親クラスの関数ですが、子クラスのDogでも使えるのがポイントです。

4. override(オーバーライド)とは?

4. override(オーバーライド)とは?
4. override(オーバーライド)とは?

override(オーバーライド)は、親クラスで定義された関数を、子クラスで書き換える(上書きする)ときに使うキーワードです。

親のルールを子どもが自分なりに変えるようなイメージです。


open class Animal {
    open fun makeSound() {
        println("何かの動物の鳴き声")
    }
}

class Cat : Animal() {
    override fun makeSound() {
        println("ニャー!")
    }
}

5. overrideで動作を変えてみよう

5. overrideで動作を変えてみよう
5. overrideで動作を変えてみよう

先ほどのmakeSound()を実際に呼び出すと、次のような動作になります。


fun main() {
    val cat = Cat()
    cat.makeSound()
}

ニャー!

このように、親クラスのmakeSound()ではなく、子クラスでoverrideされた内容が実行されます。

6. overrideにはルールがある

6. overrideにはルールがある
6. overrideにはルールがある

親クラスの関数をoverrideするには、その関数もopenで宣言されている必要があります。

openは「この関数は子クラスで書き換えていいよ」という意味です。

逆に、openがついていない関数は、overrideできません。

7. overrideとsuperの使い方

7. overrideとsuperの使い方
7. overrideとsuperの使い方

superキーワードを使うと、親クラスの関数を呼び出すことができます。つまり「もとの機能+自分の機能」を組み合わせることができるんです。


open class Animal {
    open fun greet() {
        println("こんにちは!")
    }
}

class Bird : Animal() {
    override fun greet() {
        super.greet()
        println("チュンチュン!")
    }
}

fun main() {
    val bird = Bird()
    bird.greet()
}

こんにちは!
チュンチュン!

super.greet()で親のgreet()を実行したあと、Bird独自のメッセージも追加しています。

8. 実生活に例えるKotlinの継承とoverride

8. 実生活に例えるKotlinの継承とoverride
8. 実生活に例えるKotlinの継承とoverride

親クラスは「共通の特徴」をまとめた設計図、子クラスは「それをもとに作られた実物」と考えるとわかりやすいです。

例えば、「乗り物」という親クラスがあれば、そこから「車」や「自転車」などを継承して、それぞれに合った動き(override)をさせることができます。

Kotlinの継承とoverrideは、コードを整理しやすく、再利用しやすくするためにとても大切な考え方です。

まとめ

まとめ
まとめ

Kotlinにおける継承(けいしょう)は、親クラス(スーパークラス)の機能や性質を子クラス(サブクラス)が引き継いで再利用する仕組みです。この記事では、Kotlinのクラス継承の基本から、openキーワードによる継承の許可、overrideによる関数の上書き方法、さらにsuperを使った親クラスの呼び出しなど、実際のコードを交えて分かりやすく解説しました。

Kotlinでは、デフォルトですべてのクラスは継承不可になっているため、継承したいクラスにはopenを付ける必要があります。これはJavaとは異なるKotlin独自のルールで、安全性を高めるための仕組みです。
また、親クラスの関数を子クラスで上書き(オーバーライド)したい場合には、親の関数にもopenをつけ、子ではoverrideを記述します。このようなルールを守ることで、意図しない動作やエラーを防ぎながら柔軟に機能を拡張できます。

実際のコード例として、「動物(Animal)」という親クラスを作成し、そこから「犬(Dog)」「猫(Cat)」「鳥(Bird)」といった子クラスを継承し、それぞれが固有の動作を持つ形を実装しました。こうした設計を使えば、コードの再利用性が高まり、プログラムが整理されてメンテナンスしやすくなります。

さらに、superを使うことで、親の動作に子独自の動作を追加することも可能です。たとえば、「こんにちは!」という挨拶を基本としつつ、「チュンチュン!」という鳥独自のメッセージを追加するなど、拡張性の高いコードを書くことができます。

Kotlinの継承は、単にコードを短くするためだけでなく、「共通のルールをベースに、個別の特徴を加えていく」ための重要な考え方です。これからプログラムを大きく作っていく場面では、この継承とoverrideの使い方がとても重要になりますので、しっかりと理解しておきましょう。

サンプル:Kotlinの継承とoverrideの応用


open class Vehicle {
    open fun move() {
        println("移動中")
    }
}

class Car : Vehicle() {
    override fun move() {
        super.move()
        println("車で走っています")
    }
}

fun main() {
    val car = Car()
    car.move()
}

このコードでは、VehicleクラスをCarクラスが継承しており、move()関数をoverrideしつつ、super.move()で親の処理も呼び出しています。Kotlinの継承とoverrideの基本をしっかり活用した例です。

先生と生徒の振り返り会話

生徒

「Kotlinの継承って、親クラスの機能を引き継げるっていうことなんですね!」

先生

「その通りです。親から子へと機能を渡すことで、同じコードを繰り返さずに済みますし、プログラムの構造もきれいになりますよ。」

生徒

「でも、全部勝手に継承できるわけじゃないんですね。openって書かないとダメなんですね。」

先生

「そうです。Kotlinでは、安全性を重視して、明示的に継承を許可するようにしています。overrideも同じで、親の関数がopenじゃないと上書きできません。」

生徒

superを使えば、親の動きもそのまま使えるのが便利ですね。組み合わせもできるから自由度が高いなと思いました!」

先生

「継承とoverrideをうまく使えば、共通の機能は親にまとめて、個性は子で追加するという考え方ができます。今後の開発にも必ず役立ちますよ。」

生徒

「はい!今回の例をベースに、もっと複雑なクラスも作ってみたくなりました!」

Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。

基礎からわかるKotlinをAmazonで見る

※ Amazon広告リンク

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Kotlinの継承とは何ですか?親クラスや子クラスの意味も教えてください

Kotlinの継承とは、親クラスの機能や性質を子クラスが引き継ぐ仕組みです。親クラスは共通の動作を定義し、子クラスはそれを使ったり、変更したりできます。

Kotlinでクラスを継承するにはどんな書き方をしますか?

Kotlinでクラスを継承するには、親クラスをopenキーワードで定義し、子クラスで「: 親クラス名()」と書いて継承します。
関連セミナーのご案内

【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分

「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。

本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。

具体的な体験内容と環境

【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。

【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。

この60分で得られる3つの体験

1. 自分のパソコンが「開発基地」に

プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。

2. プログラミングの「仕組み」がスッキリ

「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。

3. 「読みやすい」から「直せる」へ

Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。

※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。

セミナー画像

Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験

関連記事:
カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Swift
Swiftのswitch文の使い方|初心者でもわかるパターンマッチング徹底解説
New3
Kotlin
Kotlinの認証と認可を完全解説!初心者でもわかる安全なログイン管理とセキュリティ対策
New4
Go言語
Go言語の関数でエラーハンドリングする基本的な方法
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.4
Java&Spring記事人気No4
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.5
Java&Spring記事人気No5
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.6
Java&Spring記事人気No6
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.7
Java&Spring記事人気No7
Kotlin
Kotlinの文字列の部分取得!substring・take・dropの基本
No.8
Java&Spring記事人気No8
Kotlin
Kotlinのログ出力方法を完全ガイド!LogcatとTimberでトラブルシューティング