創作內容

1 GP

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

作者:蝦米coco│2020-05-02 14:55:17│巴幣:2│人氣:2288
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("賣掉了了一台公車");
        }
    }
}

 

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

相關創作

留言共 0 篇留言

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

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

前一篇:Unity C# abs... 後一篇:Unity C# for...

追蹤私訊切換新版閱覽

作品資料夾

Willy218359巴哈的各位
我寫的小說更新了!不想錯過更新的讀者們可以追蹤我的小屋看更多我要大聲說昨天11:37


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

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