小屋創作

日誌2020-05-02 14:55

Unity C# virtual 和 override功能說明和new和override比較

作者:蝦米coco

virtual 可用在(方法、屬性、索引子或事件宣告)
功用:用來表示可以修改的程式碼
1.virtual不能和abstractprivateoverride 修飾詞寫在同一行如
public static virtual//不行X
public  virtual//行O
2.主要都是和override搭配使用

override可用在(方法、屬性、索引子或事件宣告)
功用:用來修改時會添加的程式碼
1.可以和virtual跟abstract或者override搭配使用(要在繼承後才能寫)
2.不能使用 newstatic]virtual 修飾詞寫在同一行
3.public virtual void Car_1(){} 只能修改成 public override void Car_1(){} 不能改成public override void Car_1(int x){}

new可用在(方法、屬性、索引子或事件宣告)
功用:用來覆蓋原本基底的程式碼(如果要抓取覆蓋的程式碼要像這樣 修改a  A_1 = new 修改a()
原本a  A_1 = new 修改a()這樣不行他會抓沒覆蓋的)
1.需要繼承後才有物件可以隱藏
2.override不能和new同時使用


override和new比較

override是做修改的動作(只有1個)
new是做覆蓋的動作(就是2個都在)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public  class Exercisc : MonoBehaviour
{
    void Start()
    {
        Car Car_A = new Car();
        Car Car_B = new Truck();
        Car Car_C = new Bus();
        Truck Truck_A = new Truck();
        Bus Bus_A = new Bus();
        Car_A.Buy_Car();//買了一台車,賣掉了一台車
        Car_B.Buy_Car();//買了一台車,賣掉了一台車
        Car_C.Buy_Car();//買了一台車,賣掉了一台公車
        Truck_A.Buy_Car();//買了一台卡車,賣掉了一台卡車
        Bus_A.Buy_Car();//買了一台車,賣掉了一台公車

        Car_A.Sell_Car();//賣掉了一台車
        Car_B.Sell_Car();//賣掉了一台車
        Car_C.Sell_Car();//賣掉了一台公車
        Truck_A.Sell_Car();//賣掉了一台卡車
        Bus_A.Sell_Car();//賣掉了一台公車
    }
    public class Car
    {
       public void Buy_Car()
        {
            Debug.Log("買了一台車");
            Sell_Car();
        }
        public virtual void Sell_Car()
        {
            Debug.Log("賣掉了一台車");
        }
    }
    public class Truck : Car
    {
       new public void Buy_Car()
        {
            Debug.Log("買了一台卡車");
            Sell_Car();
        }
      new  public void Sell_Car()
        {
            Debug.Log("賣掉了了一台卡車");
        }
    }
    public class Bus : Car
    {
        public override void Sell_Car()
        {
            Debug.Log("賣掉了了一台公車");
        }
    }
}

 

1

0

LINE 分享

相關創作

【聚餐】2024/05/26拜日、兄弟聚餐&近期瑣事

鐘錶小子:美夢往事 全獎勵取得流程攻略

鳴潮 地圖上各種機關解法 + 強敵攻略

留言

開啟 APP

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

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