最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析abstract與override究竟可不可以同時(shí)使用

 更新時(shí)間:2013年05月14日 11:30:22   作者:  
本篇文章是對(duì)abstract與override究竟可不可以同時(shí)使用進(jìn)行了詳細(xì)分析介紹,需要的朋友參考下

一個(gè)屬性或方法可以同時(shí)被abstract 和override 修飾嗎?我的一個(gè)同事這樣問(wèn)我。我最初的反應(yīng)是:“當(dāng)然不可以”,但是事實(shí)上證明的確是可以一起修飾的。

對(duì)于這個(gè)問(wèn)題,我認(rèn)真的思考了下,這種方式雖然少見(jiàn),但是卻是合法的甚至還有點(diǎn)意義。

假設(shè)我們有一個(gè)非常大的,復(fù)雜的類型,讓我們叫他”Thingy”:

abstract class Thingy
{
  public virtual string Name { get { return ""; } }
}

當(dāng)然Thingy將會(huì)被很多子類集成,并且大部分子類都有一個(gè)默認(rèn)的””的Name,或者是null,

或者是其他什么的。關(guān)鍵點(diǎn)并不在這個(gè)Name究竟有什么值,而是對(duì)于大部分在類型層次結(jié)構(gòu)中的類都

有一個(gè)有意義的默認(rèn)的名字。

但是,假如有另一個(gè)抽象的thingy,F(xiàn)robThingy,它總是有一個(gè)非空(non-empty)的名字.為了防止

FrobThingy的子類意外的調(diào)用thingy的實(shí)現(xiàn),我們可以這樣:

abstract class FrobThingy : Thingy
{
  public abstract override string Name { get; }
}

這樣,假如你有一個(gè)子類BigFrobThingy,你就不得不自己提供Name屬性的實(shí)現(xiàn)了,因?yàn)槿绻悴惶峁┑?/P>

話,你就無(wú)法通過(guò)編譯了。

相關(guān)文章

最新評(píng)論

吉林省| 金阳县| 宝鸡市| 福清市| 永善县| 林口县| 斗六市| 中西区| 曲周县| 鄂温| 柳江县| 江口县| 抚远县| 思茅市| 泊头市| 元朗区| 井研县| 天门市| 寿宁县| 宜城市| 城步| 龙岩市| 固安县| 宜君县| 乡城县| 营口市| 怀柔区| 德昌县| 台东县| 盘锦市| 霍邱县| 政和县| 梁山县| 汶川县| 固始县| 阳西县| 隆尧县| 马山县| 大理市| 天峨县| 合肥市|