蜜桃精品成人影片_99热在线精品免费_日韩亚洲中字无码一区二区三区_亚洲中文字幕久久精品无码一区

您現(xiàn)在所在的位置:首頁(yè) >學(xué)習(xí)資源 > Unity游戲/VR/AR入門(mén)教材 > VR開(kāi)發(fā)入門(mén)教程30:控制臺(tái)編程 接口和索引器

VR開(kāi)發(fā)入門(mén)教程30:控制臺(tái)編程 接口和索引器

來(lái)源:奇酷教育 發(fā)表于:

接口在構(gòu)建問(wèn)題的類(lèi)過(guò)程中,我們經(jīng)常會(huì)遇到一種特殊的情況,在描述某個(gè)類(lèi)的各個(gè)方法時(shí),對(duì)每個(gè)方法我們只能給出其功能實(shí)現(xiàn)的要求(原形聲明

接口
在構(gòu)建問(wèn)題的類(lèi)過(guò)程中,我們經(jīng)常會(huì)遇到一種特殊的情況,在描述某個(gè)類(lèi)的各個(gè)方法時(shí),對(duì)每個(gè)方法我們只能給出其功能實(shí)現(xiàn)的要求(原形聲明)但不能給出具體的功能實(shí)現(xiàn)(函數(shù)定義體)。因?yàn)槲覀兯幚淼膯?wèn)題只是一個(gè)泛泛的功能說(shuō)明,并沒(méi)有針對(duì)某一具體類(lèi)型的問(wèn)題來(lái)說(shuō)明。
 
含義:    
一組只有成員方法聲明沒(méi)有方法體的方法集。    
接口定義了一組成員函數(shù),但沒(méi)有具體加以實(shí)現(xiàn),其實(shí)現(xiàn)則是由實(shí)現(xiàn)該接口的類(lèi)來(lái)加以具體完成的。
 
接口中只能包含方法、屬性、索引器和事件的聲明。
接口的定義
要點(diǎn):類(lèi)似于類(lèi)的定義格式,只是以 interface作為定義符。
 
格式:
[訪問(wèn)修飾符] interface 接口名
返回值類(lèi)型 方法名([參數(shù)列表]);(只有聲明而無(wú)方法體)
}
或:
[訪問(wèn)修飾符] interface 派生的接口名 : 父接口名列表
 {     
返回值類(lèi)型 方法名([參數(shù)列表]);(只有聲明而無(wú)方法體)
 }
 
接口中聲明的方法都是默認(rèn)public的 不能自定義訪問(wèn)級(jí)別
接口中聲明索引器的方法:
返回值類(lèi)型 this [【參數(shù)列表】最少有一個(gè)參數(shù)]{set;get;}
 
示例:
public interface Dispaly
{
     void ViewImage();
}
接口實(shí)現(xiàn)
通過(guò)定義一個(gè)類(lèi)同時(shí)采用:來(lái)指明所實(shí)現(xiàn)的接口名,并在該類(lèi)中實(shí)現(xiàn)接口中的所有成員方法且給出方法體定義。
 
類(lèi)中所實(shí)現(xiàn)的接口中的成員函數(shù)的原型都應(yīng)該與它在 接口中的原型定義保持一致;
并在類(lèi)中重寫(xiě)接口中的所有成員方法;
通過(guò)實(shí)現(xiàn)接口,從而可擴(kuò)充或增加該類(lèi)的功能。
接口只定義方法名,而類(lèi)實(shí)現(xiàn)接口內(nèi)部的方法的代碼
 
語(yǔ)法:
class 類(lèi)名 : 接口列表(,分割)
{
     // 所有接口定義方法的實(shí)現(xiàn)
}
 
一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口
 
接口的實(shí)現(xiàn)分為:隱式實(shí)現(xiàn)和顯式實(shí)現(xiàn)。
如果類(lèi)或者結(jié)構(gòu)要實(shí)現(xiàn)的是單個(gè)接口,可以使用隱式實(shí)現(xiàn)
如果類(lèi)或者結(jié)構(gòu)實(shí)現(xiàn)了多個(gè)接口那么接口中相同名稱成員就要顯式實(shí)現(xiàn)。
顯式實(shí)現(xiàn)是通過(guò)使用接口的完全限定名(接口名.方法名)來(lái)實(shí)現(xiàn)接口成員的。
接口回調(diào)
接口也是引用數(shù)據(jù)類(lèi)型,指向接口的引用也可以指向任意實(shí)現(xiàn)了該接口的類(lèi)創(chuàng)建的實(shí)例
接口回調(diào),即接口的引用可以指向?qū)崿F(xiàn)了接口的類(lèi)的實(shí)例
 
接口回調(diào)均可以訪問(wèn)到實(shí)現(xiàn)類(lèi)里實(shí)現(xiàn)的方法
 
注意:
顯式實(shí)現(xiàn)的方法只能用接口回調(diào)來(lái)調(diào)用到
無(wú)法用實(shí)現(xiàn)類(lèi)引用調(diào)用到
示例:
public interface IHello
{
void Bellow();
}
 
///
/// 顯式接口實(shí)現(xiàn)
///
public class Speak : IHello
{
    void IHello.Bellow()
    {
        Console.WriteLine("Hello");
    }
}
 
class MainClass
{
    public static void Main (string[] args)
    {
        Speak speak = new Speak();
        //speak.Bellow() error
        (speak as IHello).Bellow();// 不安全 原因:無(wú)法保證待轉(zhuǎn)換的對(duì)象所在的類(lèi)確實(shí)實(shí)     
                                             現(xiàn)了該接口 有可能出現(xiàn)空指針異常
        IHello ih = speak as IHello;
        if (ih != null)
        {
           ih.Bellow();//安全
        }
    }
}
 
犍为县| 陕西省| 宣威市| 富锦市| 岑巩县| 积石山| 巫溪县| 大方县| 福鼎市| 秭归县| 弥勒县| 蕲春县| 井研县| 安阳市| 汾西县| 云梦县| 颍上县| 长乐市| 青阳县| 乡城县| 肃宁县| 体育| 西平县| 宁武县| 宝鸡市| 舟山市| 庄浪县| 常州市| 托里县| 隆尧县| 甘泉县| 嘉鱼县| 奉节县| 多伦县| 云安县| 长丰县| 盱眙县| 彰武县| 洛南县| 文昌市| 乐昌市|