C#學(xué)習(xí)基礎(chǔ)概念二十五問 11-15
更新時(shí)間:2007年04月09日 00:00:00 作者:
11.可以使用抽象函數(shù)重寫基類中的虛函數(shù)嗎?
答:
可以
需使用 new 修飾符顯式聲明,表示隱藏了基類中該函數(shù)的實(shí)現(xiàn)
或增加 override 修飾符,表示抽象重寫了基類中該函數(shù)的實(shí)現(xiàn)
示例:
class BaseClass
{
public virtual void F()
{
Console.WriteLine("BaseClass.F");
}
}
abstract class DeriveClass1 : BaseClass
{
public abstract new void F();
}
//感謝watson hua(http://huazhihao.cnblogs.com/)的指點(diǎn)
//是他提醒了我還可以用這種方法抽象重寫基類的虛方法
abstract class DeriveClass2 : BaseClass
{
public abstract override void F();
}
12.密封類可以有虛函數(shù)嗎?
答:
可以,基類中的虛函數(shù)將隱式的轉(zhuǎn)化為非虛函數(shù),但密封類本身不能再增加新的虛函數(shù)
示例:
class BaseClass
{
public virtual void F()
{
Console.WriteLine("BaseClass.F");
}
}
sealed class DeriveClass : BaseClass
{
//基類中的虛函數(shù)F被隱式的轉(zhuǎn)化為非虛函數(shù)
//密封類中不能再聲明新的虛函數(shù)G
//public virtual void G()
//{
// Console.WriteLine("DeriveClass.G");
//}
}
13.什么是屬性訪問器?
答:
屬性訪問器(Property Accessor),包括 get 訪問器和 set 訪問器分別用于字段的讀寫操作
其設(shè)計(jì)目的主要是為了實(shí)現(xiàn)面向?qū)ο螅∣O)中的封裝思想。根據(jù)該思想,字段最好設(shè)為private,一個(gè)精巧的類最好不要直接把字段設(shè)為公有提供給客戶調(diào)用端直接訪問
另外要注意屬性本身并不一定和字段相聯(lián)系
14.abstract 可以和 virtual 一起使用嗎?可以和 override 一起使用嗎?
答:
abstract 修飾符不可以和 static、virtual 修飾符一起使用
abstract 修飾符可以和 override 一起使用,參見第11點(diǎn)
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example14
{
class BaseClass
{
public virtual void F()
{
Console.WriteLine("BaseClass.F");
}
}
abstract class DeriveClass1 : BaseClass
{
//在這里, abstract是可以和override一起使用的
public abstract override void F();
}
class Program
{
static void Main(string[] args)
{
}
}
}
15.接口可以包含哪些成員?
答:
接口可以包含屬性、方法、索引指示器和事件,但不能包含常量、域、操作符、構(gòu)造函數(shù)和析構(gòu)函數(shù),而且也不能包含任何靜態(tài)成員
答:
可以
需使用 new 修飾符顯式聲明,表示隱藏了基類中該函數(shù)的實(shí)現(xiàn)
或增加 override 修飾符,表示抽象重寫了基類中該函數(shù)的實(shí)現(xiàn)
示例:
class BaseClass
{
public virtual void F()
{
Console.WriteLine("BaseClass.F");
}
}
abstract class DeriveClass1 : BaseClass
{
public abstract new void F();
}
//感謝watson hua(http://huazhihao.cnblogs.com/)的指點(diǎn)
//是他提醒了我還可以用這種方法抽象重寫基類的虛方法
abstract class DeriveClass2 : BaseClass
{
public abstract override void F();
}
12.密封類可以有虛函數(shù)嗎?
答:
可以,基類中的虛函數(shù)將隱式的轉(zhuǎn)化為非虛函數(shù),但密封類本身不能再增加新的虛函數(shù)
示例:
class BaseClass
{
public virtual void F()
{
Console.WriteLine("BaseClass.F");
}
}
sealed class DeriveClass : BaseClass
{
//基類中的虛函數(shù)F被隱式的轉(zhuǎn)化為非虛函數(shù)
//密封類中不能再聲明新的虛函數(shù)G
//public virtual void G()
//{
// Console.WriteLine("DeriveClass.G");
//}
}
13.什么是屬性訪問器?
答:
屬性訪問器(Property Accessor),包括 get 訪問器和 set 訪問器分別用于字段的讀寫操作
其設(shè)計(jì)目的主要是為了實(shí)現(xiàn)面向?qū)ο螅∣O)中的封裝思想。根據(jù)該思想,字段最好設(shè)為private,一個(gè)精巧的類最好不要直接把字段設(shè)為公有提供給客戶調(diào)用端直接訪問
另外要注意屬性本身并不一定和字段相聯(lián)系
14.abstract 可以和 virtual 一起使用嗎?可以和 override 一起使用嗎?
答:
abstract 修飾符不可以和 static、virtual 修飾符一起使用
abstract 修飾符可以和 override 一起使用,參見第11點(diǎn)
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example14
{
class BaseClass
{
public virtual void F()
{
Console.WriteLine("BaseClass.F");
}
}
abstract class DeriveClass1 : BaseClass
{
//在這里, abstract是可以和override一起使用的
public abstract override void F();
}
class Program
{
static void Main(string[] args)
{
}
}
}
15.接口可以包含哪些成員?
答:
接口可以包含屬性、方法、索引指示器和事件,但不能包含常量、域、操作符、構(gòu)造函數(shù)和析構(gòu)函數(shù),而且也不能包含任何靜態(tài)成員
相關(guān)文章
C# Dynamic關(guān)鍵字之:解析dynamic就是Object
本篇文章是對C#中dynamic關(guān)鍵字就是Object進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Expression操作運(yùn)算符、表達(dá)式和操作方法總結(jié)
這篇文章詳細(xì)介紹了Expression操作運(yùn)算符、表達(dá)式和操作方法總結(jié),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01C#利用RabbitMQ實(shí)現(xiàn)點(diǎn)對點(diǎn)消息傳輸
RabbitMQ做為消息代理,負(fù)責(zé)接收和轉(zhuǎn)發(fā)消息,可以將RabbitMQ比喻為一個(gè)郵筒、一個(gè)郵局和一個(gè)郵遞員。本文主要以一個(gè)簡單的小例子,簡述RabbitMQ實(shí)現(xiàn)消息傳輸?shù)南嚓P(guān)內(nèi)容,僅供學(xué)習(xí)分享使用,如有不足之處,還請指正。2021-05-05C#實(shí)現(xiàn)計(jì)算器功能(winform版)
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)winform版的計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01C#編程實(shí)現(xiàn)查看剪切板內(nèi)容的方法
這篇文章主要介紹了C#編程實(shí)現(xiàn)查看剪切板內(nèi)容的方法,涉及C#針對剪切板操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11Unity3D實(shí)現(xiàn)分頁系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)分頁系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04