一、抽象類中可以提供非抽象的執行方法嗎?接口呢?
答:抽象類可以這麼寫:
復制代碼 代碼如下:
public abstract class A
{
public string getWebUrl()
{
return "jb51.net";
}
public abstract string getWebName();
}
public class B : A
{
public override string getWebName()
{
return "";
}
}
運行: B b = new B();
Response.Write(b.getWebUrl());
編譯通過沒有錯誤,而接口本身只能包含成員但不包括具體實現,且抽象函數只能存在於抽象類中,所以接口中只有方法的簽名,但沒有具體的實現,且不是抽象函數,例如: C#復制代碼
interface IA
{
string getWebUrl();
string getWebName();
}
二、接口中的成員是否必須被其子類實現?
答:接口是抽象類的一個特例,而抽象函數都必須被其子類覆蓋實現,接口中的成員也一樣必須被其子類實現。
三、抽象類中是否可以使用virtual關鍵字? 答:不可以,抽象類中只能包含抽象方法和抽象訪問器。
四、抽象類能被實例化嗎? 答:不可以。