> For the complete documentation index, see [llms.txt](https://kurohasu.gitbook.io/fsharpabout/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kurohasu.gitbook.io/fsharpabout/objects/inherit.md).

# オブジェクトの継承

### &#x20;オブジェクトの継承

継承関係を指定するには「inherit」キーワードを使用します\
オブジェクトの継承を行うと親クラスのメンバーの引継ぎや再定義が行えるため、使い勝手がよくなります

```
構文:type 子クラス(<引数>)=
        inherit 親クラス(<引数>)
        子クラスのメンバーなど...
```

<pre class="language-fsharp"><code class="lang-fsharp">//carクラス(親クラス)
type car(maker:string)=
    let manifacuters=maker

    
    member _.printmaker()=printfn "メーカー:%s" manifacuters
    member _.startengine()=printfn "エンジンかける"
    member _.driving()=printfn "ぶんぶん！！"

//trackクラス(子クラス)
type track(maker:string)=
    //引数makerでcarクラスより継承
    inherit car(maker)

    member _.carrycomponent()=printfn "荷物運ぶよ"

    member _.makermsg(makers:string)=printfn "%sのトラックって良いよね" makers



let kuruma=new track("isuzu")

//carクラスで定義されている処理を呼び出す
kuruma.printmaker()
kuruma.driving()

//trackクラスで定義されている処理を呼び出す
kuruma.carrycomponent()
kuruma.makermsg("いすゞ")


//出力結果:
<strong>//メーカー:isuzu
</strong>//ぶんぶん！！
//荷物運ぶよ
//いすゞのトラックって良いよね
</code></pre>

次ページでは抽象クラス・インターフェースを用いたメソッドの再定義について紹介します
