創作內容

2 GP

Unity C# abstract 功能說明

作者:蝦米coco│2020-05-01 12:37:46│巴幣:4│人氣:972
abstract的功能主要是用在(類別、方法、屬性、索引子事件)
功用有點像叫貨例如:你叫了一台送貨車(類別)這台車要有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;
        }
    }
}
抽象類別
1.抽象類別無法實例化//(只能透過繼承來實例)
2.abstract 不能和virtual、static、sealed搭配使用//(方法沒有abstract就可以用)
3.抽象類別才能有抽象方法、屬性//(如果是一般的class不能有abstract的方法、屬性)
4.必須把abstract的方法、索引子全部都實例化才行//(10箱不能是空的一定要裝滿)
5.抽象方法隱含為虛擬方法//(自身就帶有virtual)
6.abstract方法、索引子、屬性繼承後要用override實作


引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4767429
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

2喜歡★pk123634 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:Unity C# Sea... 後一篇:Unity C# vir...

追蹤私訊切換新版閱覽

作品資料夾

TU88694給予幸福的尼
幸福其實很簡單 只要一直陪伴再一起就足夠了 ₍ᐢ.ˬ.⑅ᐢ₎看更多我要大聲說8小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】