c# abstract抽象類及抽象方法_繼承
//抽象類不能同時是密封的
//可包括抽象成員
//不能直接例項化
//必須是其它類的基類
//抽象類可以繼承抽象類
abstract class Team
{
public abstract void G();//抽象類中的抽象方法;僅含有宣告沒有方法體;且以;分號結束
}
class sun : Team //如果繼承了抽象類的類是實體類,它必須實現抽象基類的抽象方法,即father.G
{
private string _c;
//abstract或extern表明可以不用宣告方法體
public void Find(string c)
{
this._c = c;
}
//對抽象基類的抽象方法必須進行重寫override方可實現其真正使用
public override void G()
{
Console.WriteLine("類sun實現了抽象基類的抽象方法G");
}
}
static void Main(string[] args)
{
//sun t1 = new Team();//不能直接建立抽象類或介面的例項
sun s1 = new sun();
s1.G();
Console.ReadKey();
}
namespace learnindexindicator
{
//抽象類不能同時是密封的
//可包括抽象成員
//不能直接例項化
//必須是其它類的基類
//抽象類可以繼承抽象類
abstract class Team
{
public abstract void G();//抽象類中的抽象方法;僅含有宣告沒有方法體;且以;分號結束
}
//抽象類繼承抽象類時,可以不用實現其父級抽象類的抽象方法
//抽象類可以包括實體方法和抽象方法
abstract class SubTeam:Team
{
public void ShutDown()
{
Console.WriteLine("抽象類中的非抽象方法");
}
}
class sun : Team //如果繼承了抽象類的類是實體類,它必須實現抽象基類的抽象方法,即father.G
{
private string _c;
//abstract或extern表明可以不用宣告方法體
public void Find(string c)
{
this._c = c;
}
//對抽象基類的抽象方法必須進行重寫override方可實現其真正使用
public override void G()
{
Console.WriteLine("類sun實現了抽象基類的抽象方法G");
}
}
class Three : SubTeam
{
public override void G()
{
Console.WriteLine("在實體類多級繼承抽象類時實現了抽象類的抽象方法G");
}
}
}
class Program
{
static void Main(string[] args)
{
//sun t1 = new Team();//不能直接建立抽象類或介面的例項
sun s1 = new sun();
s1.G();
Console.ReadKey();
Console.WriteLine("---------------------------");
Three sub1 = new Three();
sub1.G();//實體類繼承抽象父類的抽象方法的重寫
sub1.ShutDown();//實體類的繼承BASE父類的實體方法shutdown
Console.ReadKey();
}
}
//抽象類不能同時是密封的
//可包括抽象成員
//不能直接例項化
//必須是其它類的基類
//抽象類可以繼承抽象類
abstract class Team
{
public abstract void G();//抽象類中的抽象方法;僅含有宣告沒有方法體;且以;分號結束
}
//抽象類繼承抽象類時,可以不用實現其父級抽象類的抽象方法
//抽象類可以包括實體方法和抽象方法
abstract class SubTeam:Team
{
public void ShutDown()
{
Console.WriteLine("抽象類中的非抽象方法");
}
}
class sun : Team //如果繼承了抽象類的類是實體類,它必須實現抽象基類的抽象方法,即father.G
{
private string _c;
//abstract或extern表明可以不用宣告方法體
public void Find(string c)
{
this._c = c;
}
//對抽象基類的抽象方法必須進行重寫override方可實現其真正使用僅在繼承時才可用override和sealed
//測試override和sealed的組合,如無sealed,是否在子類可重寫方法
public override void G()
{
Console.WriteLine("類sun實現了抽象基類的抽象方法G");
}
}
class sunof1 : sun
{
public override void G()
{
base.G();
Console.WriteLine("類sunof1重寫了sun類的G方法");
}
}
class Three : SubTeam
{
public override void G()
{
Console.WriteLine("在實體類多級繼承抽象類時實現了抽象類的抽象方法G");
}
}
}
class Program
{
static void Main(string[] args)
{
//sun t1 = new Team();//不能直接建立抽象類或介面的例項
sun s1 = new sun();
s1.G();
Console.ReadKey();
Console.WriteLine("---------------------------");
Three sub1 = new Three();
sub1.G();//實體類繼承抽象父類的抽象方法的重寫
sub1.ShutDown();//實體類的繼承BASE父類的實體方法shutdown
Console.ReadKey();
sunof1 so1 = new sunof1();
so1.G();
Console.ReadKey();
}
}
//可包括抽象成員
//不能直接例項化
//必須是其它類的基類
//抽象類可以繼承抽象類
abstract class Team
{
public abstract void G();//抽象類中的抽象方法;僅含有宣告沒有方法體;且以;分號結束
}
class sun : Team //如果繼承了抽象類的類是實體類,它必須實現抽象基類的抽象方法,即father.G
{
private string _c;
//abstract或extern表明可以不用宣告方法體
public void Find(string c)
{
this._c = c;
}
//對抽象基類的抽象方法必須進行重寫override方可實現其真正使用
public override void G()
{
Console.WriteLine("類sun實現了抽象基類的抽象方法G");
}
}
static void Main(string[] args)
{
//sun t1 = new Team();//不能直接建立抽象類或介面的例項
sun s1 = new sun();
s1.G();
Console.ReadKey();
}
namespace learnindexindicator
{
//抽象類不能同時是密封的
//可包括抽象成員
//不能直接例項化
//必須是其它類的基類
//抽象類可以繼承抽象類
abstract class Team
{
public abstract void G();//抽象類中的抽象方法;僅含有宣告沒有方法體;且以;分號結束
}
//抽象類繼承抽象類時,可以不用實現其父級抽象類的抽象方法
//抽象類可以包括實體方法和抽象方法
abstract class SubTeam:Team
{
public void ShutDown()
{
Console.WriteLine("抽象類中的非抽象方法");
}
}
class sun : Team //如果繼承了抽象類的類是實體類,它必須實現抽象基類的抽象方法,即father.G
{
private string _c;
//abstract或extern表明可以不用宣告方法體
public void Find(string c)
{
this._c = c;
}
//對抽象基類的抽象方法必須進行重寫override方可實現其真正使用
public override void G()
{
Console.WriteLine("類sun實現了抽象基類的抽象方法G");
}
}
class Three : SubTeam
{
public override void G()
{
Console.WriteLine("在實體類多級繼承抽象類時實現了抽象類的抽象方法G");
}
}
}
class Program
{
static void Main(string[] args)
{
//sun t1 = new Team();//不能直接建立抽象類或介面的例項
sun s1 = new sun();
s1.G();
Console.ReadKey();
Console.WriteLine("---------------------------");
Three sub1 = new Three();
sub1.G();//實體類繼承抽象父類的抽象方法的重寫
sub1.ShutDown();//實體類的繼承BASE父類的實體方法shutdown
Console.ReadKey();
}
}
//抽象類不能同時是密封的
//可包括抽象成員
//不能直接例項化
//必須是其它類的基類
//抽象類可以繼承抽象類
abstract class Team
{
public abstract void G();//抽象類中的抽象方法;僅含有宣告沒有方法體;且以;分號結束
}
//抽象類繼承抽象類時,可以不用實現其父級抽象類的抽象方法
//抽象類可以包括實體方法和抽象方法
abstract class SubTeam:Team
{
public void ShutDown()
{
Console.WriteLine("抽象類中的非抽象方法");
}
}
class sun : Team //如果繼承了抽象類的類是實體類,它必須實現抽象基類的抽象方法,即father.G
{
private string _c;
//abstract或extern表明可以不用宣告方法體
public void Find(string c)
{
this._c = c;
}
//對抽象基類的抽象方法必須進行重寫override方可實現其真正使用僅在繼承時才可用override和sealed
//測試override和sealed的組合,如無sealed,是否在子類可重寫方法
public override void G()
{
Console.WriteLine("類sun實現了抽象基類的抽象方法G");
}
}
class sunof1 : sun
{
public override void G()
{
base.G();
Console.WriteLine("類sunof1重寫了sun類的G方法");
}
}
class Three : SubTeam
{
public override void G()
{
Console.WriteLine("在實體類多級繼承抽象類時實現了抽象類的抽象方法G");
}
}
}
class Program
{
static void Main(string[] args)
{
//sun t1 = new Team();//不能直接建立抽象類或介面的例項
sun s1 = new sun();
s1.G();
Console.ReadKey();
Console.WriteLine("---------------------------");
Three sub1 = new Three();
sub1.G();//實體類繼承抽象父類的抽象方法的重寫
sub1.ShutDown();//實體類的繼承BASE父類的實體方法shutdown
Console.ReadKey();
sunof1 so1 = new sunof1();
so1.G();
Console.ReadKey();
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-718052/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP 抽象類繼承抽象類時的注意點PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- TypeScript abstract 抽象類TypeScript抽象
- Java之繼承和抽象類Java繼承抽象
- 介面和抽象類 (abstract)抽象
- 【JAVA】筆記(5)--- final;抽象方法;抽象類;介面;解析繼承,關聯,與實現;Java筆記抽象繼承
- 介面是否可繼承(extends)介面? 抽象類是否可實現 (implements)介面? 抽象類是否可繼承具體類(concrete class)?繼承抽象
- 6-2 抽象類的繼承 (5分)抽象繼承
- 抽象方法和抽象類抽象
- 【Java】繼承、抽象、組合Java繼承抽象
- 繼承、抽象個人小結繼承抽象
- Java基礎10 介面的繼承與抽象類Java繼承抽象
- Java抽象類、繼承及多型和介面卡的實現Java抽象繼承多型
- 走進C# abstract,瞭解抽象類與介面的異同C#抽象
- JAVA類的頂層Type抽象和繼承關係Java抽象繼承
- java中的抽象類abstract怎麼使用?Java抽象
- scala_繼承、型別判斷、抽象類、匿名內部類繼承型別抽象
- C#介面、抽象類、普通類和繼承(子類與父類)都有其特定的用途和場景C#抽象繼承
- 物件導向 -- 三大特性之繼承 補充 抽象類 介面類物件繼承抽象
- C++中的抽象基類(Abstract Base Class)C++抽象
- PHP中的 抽象類(abstract class)和 介面(interface)PHP抽象
- Java 類與物件(繼承extends super關鍵詞 方法重寫 抽象abstract 訪問修飾符/許可權控制符)Java物件繼承抽象
- Java集合為什麼設計為:實現類繼承了抽象類,同時實現抽象類實現的介面Java繼承抽象
- c#抽象類的定義C#抽象
- JAVA學習線路:day01物件導向(繼承、抽象類)Java物件繼承抽象
- 關於Java中的物件、類、抽象類、介面、繼承之間的聯絡Java物件抽象繼承
- 抽象語法樹 Abstract syntax tree抽象語法樹
- JavaSE第三章 物件導向 抽象類 abstractJava物件抽象
- 抽象類及介面詳解抽象
- 第二十八節:Java基礎-進階繼承,抽象類,介面Java繼承抽象
- 抽象類抽象
- 使用C# (.NET Core) 實現抽象工廠設計模式 (Abstract Pattern)C#抽象設計模式
- 介面的行為抽象和抽象類的行為抽象抽象
- C#中抽象方法與虛方法的區別詳解及示例C#抽象
- Abstract Factory(抽象工廠)——物件建立型模式抽象物件模式
- Java 抽象類Java抽象
- 14、抽象類抽象
- Python抽象類Python抽象
- abstract關鍵字 super 關鍵字 類與繼承繼承
- 設計模式-抽象工廠模式(Abstract Factory Pattern)設計模式抽象