継承

Tutorial

·

intermediate

·

+0XP

·

5 mins

·

(14)

Unity Technologies

継承

継承を使用してコードを再利用し、関連するクラス間に強力な関係を構築する方法を学びます。

Languages available:

1. 継承

Fruit クラスのコード

using UnityEngine;
using System.Collections;

// これは基底クラスです。
// 親クラスとも呼ばれます。
public class Fruit 
{
    public string color;

    // これは Fruit クラスの最初のコンストラクターです。
    // 派生クラスには継承されません。
    public Fruit()
    {
        color = "orange";
        Debug.Log("1st Fruit Constructor Called");
    }

    // これは Fruit クラスの 2 番目のコンストラクタです。
    // 派生クラスには継承されません。
    public Fruit(string newColor)
    {
        color = newColor;
        Debug.Log("2nd Fruit Constructor Called");
    }

    public void Chop()
    {
        Debug.Log("The " + color + " fruit has been chopped.");        
    }

    public void SayHello()
    {
        Debug.Log("Hello, I am a fruit.");
    }
}

Apple クラスのコード

using UnityEngine;
using System.Collections;

// これは派生クラスです。
// 子クラスとも呼ばれます。
public class Apple : Fruit 
{
    // これは Apple クラスの最初のコンストラクタです。
    // 実行前でも、直ちに親コンストラクタを呼び出します。
    public Apple()
    {
        // Apple が親の Fruit クラスの一部である public 変数 colorに
        // アクセスする方法に注目してください。
        color = "red";
        Debug.Log("1st Apple Constructor Called");
    }

    // これは Apple クラスの2番目のコンストラクタです。
    // "base "キーワードを使用して、どの親コンストラクタが呼び出されるかを指定しています。
    public Apple(string newColor) : base(newColor)
    {
        // このコンストラクターでは色を設定しないことに注意してください。
        // これは基底クラスのコンストラクターで、引数として渡された色を設定しているためです。
        Debug.Log("2nd Apple Constructor Called");
    }
}

FruitSalad クラスのコード

using UnityEngine;
using System.Collections;

public class FruitSalad : MonoBehaviour 
{
    void Start () 
    {
        // デフォルトコンストラクターを使って
        // 継承がどのように行われているか見てみましょう。
        Debug.Log("Creating the fruit");
        Fruit myFruit = new Fruit();
        Debug.Log("Creating the apple");
        Apple myApple = new Apple();

        // Fruit クラスのメソッドを呼び出します。
        myFruit.SayHello();
        myFruit.Chop();

        // Apple クラスのメソッドを呼び出します。
        // Apple クラスが Fruit クラスのすべての public メソッドに
        // アクセスできることに注意してください。
        myApple.SayHello();
        myApple.Chop();

        // 次は、文字列を読み取るコンストラクターを使用して
        // 継承がどのように行われているか見てみましょう。
        Debug.Log("Creating the fruit");
        myFruit = new Fruit("yellow");
        Debug.Log("Creating the apple");
        myApple = new Apple("green");

        // Fruit クラスのメソッドを呼び出します。
        myFruit.SayHello();
        myFruit.Chop();

        // Apple クラスのメソッドを呼び出します。
        // Apple クラスが Fruit クラスのすべての public メソッドに
        // アクセスできることに注意してください。
        myApple.SayHello();
        myApple.Chop();
    }
}

Complete this tutorial