功用有點像叫貨例如:你叫了一台送貨車(類別)這台車要有10箱商品(方法或屬性),而箱子裡東西可以是水果、紙巾、口罩但最後一定要送來要是10箱東西,而且這10箱不能是空的一定要裝滿
(實例化),而且每台車(繼承)送的東西都不一樣。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Exercisc : MonoBehaviour
{
void Start()
{
Car_A C_A = new Car_A();
C_A.Box_string = "蘋果";
C_A.Box_Open();//10箱蘋果收到
C_A.Steal(1);
C_A.Box_Open();//有人偷了1箱蘋果
Car_B C_B = new Car_B();
C_B.Box_string = "口罩";
C_B.Box_Open();//口罩本來有10箱但到達目的地卻一箱都不剩
//可以看出使用C_A和C_B的Box_Open()的方法不一樣了
}
}
public abstract class Car//先規劃一台車要有甚麼
{
public int i = 10;
public string Box_string;//不能使用abstract
public abstract string Box { get; set; }//改成索引子能用abstract
public abstract void Box_Open();
public void Steal(int x)
{
i=x;
}
}
public class Car_A:Car//再從設計圖做出一台車除了有abstract的其他造原本的繼承上去
{
public override void Box_Open()
{
Debug.Log(Box);
}
public override string Box
{
get
{
if(i==10)
{
return "10箱" + Box_string + "收到";
}
return "有人偷了"+i+"箱"+ Box_string;
}
set
{
Box_string = value;
}
}
}
public class Car_B : Car
{
public override void Box_Open()
{
Debug.Log(Box);
}
public override string Box
{
get
{
return Box_string+"本來有"+i+"箱但到達目的地卻一箱都不剩";
}
set
{
Box_string = value;
}
}
}