C#基礎——abstract
abstract修飾符可以和類、方法、屬性、索引器及事件一起使用。在類宣告中abstract修飾符以指示某個類只能是其他類的基類。標記為抽象或包含在抽象類中的成員必須通過從抽象類派生的類來實現。
抽象類具有以下特性:抽象類不能例項化;抽象類可以包含抽象方法和抽象訪問器;不能用sealed修飾符修改抽象類,因為sealed會使得抽象類無法被繼承;從抽象類派生的非抽象類必須包括繼承的所有抽象方法和抽象訪問器的實實現。
在方法或屬性宣告中使用abstract修飾符以指示方法或屬性不包含實現。抽象方法具有以下特性:抽象方法是隱式的虛方法;只允許在抽象類中使用抽象方 法宣告;因為抽象方法宣告不提供實際的實現,所以沒有方法體,方法什麼只是以一個分號結束,並且在簽名後沒有大括號({});實現由一個重寫方法 override提供,此重寫方法是非抽象類的一個成員;在抽象方法宣告中使用static或virtual修飾符是錯誤的。
-
//抽象類不能是密封的或靜態的
//abstract sealed class TestClass{}
//abstract static class TestClass{} -
abstract class BaseClass
{
protected int _x=100;
protected int _y=150;
public abstract void AbstractMethod();
public abstract int X {get;}
public abstract int Y {get;}
//靜態成員不能標記為abstract
//public static abstract void StaticMethod();
}
class DerivedClass:BaseClass
{
public override void AbstractMethod()
{
_x++;
_y++;
}
public override int X{ get{return _x+10;}}
public override int Y{get{return _y+10;}}
public static void Main()
{
DerivedClass c=new DerivedClass();
c.AbstractMethod();
Console.WriteLine("x = {0}, y = {1}", c.X, c.Y);
Console.WriteLine();
Console.WriteLine("Press Enter to close this window.");
Console.ReadLine();
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-624593/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java基礎:abstractJava
- c# abstractC#
- C# interface abstract classC#
- C#之Abstract、Vitrual、OverrideC#IDE
- c#基礎C#
- c#基礎教程C#
- c#基礎-基礎-16.stringC#
- C# [method Modifiers] abstract virtual override newC#IDE
- C#基礎教程:事件C#事件
- C#基礎語法C#
- 【轉】C#中virtual和abstract的區別C#
- c# abstract抽象類及抽象方法_繼承C#抽象繼承
- C#基礎之介面(6)C#
- MongoDB for C#基礎入門MongoDBC#
- C#字串基礎學習C#字串
- C#基礎概念面試題C#面試題
- C#面試基礎問題C#面試
- C#基礎程式設計——簡介及基礎語法C#程式設計
- C#基礎:泛型委託C#泛型
- C#基礎委託回顧C#
- C#基礎語法補充C#
- C#基礎之新語句C#
- c# windows程式設計基礎C#Windows程式設計
- c#圖解教程 類基礎C#圖解
- C#基礎資料型別C#資料型別
- C#基礎系列--C#中委託與事件(三)C#事件
- C#基礎系列--C#中委託與事件(一)C#事件
- c#(解析xml檔案基礎方法)C#XML
- C#基礎之yield與SingletonC#
- C#基礎概念二十五問C#
- C++中的抽象基類(Abstract Base Class)C++抽象
- java abstractJava
- C#基礎之checked與 unchecked的使用C#
- C#基礎訪問修飾符概述C#
- C# 基礎技術問題總結C#
- C#基礎:泛型的理解和使用C#泛型
- C#中foreach基礎使用方法C#
- C#基礎系列:序列化效率比拼C#