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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- c# abstract抽象類與繼承類子類的建構函式_baseC#抽象繼承函式
- PHP 抽象類繼承抽象類時的注意點PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- C# OOP:繼承,介面和抽象類C#OOP繼承抽象
- c# abstract抽象類_非抽象類_virtual_虛方法_override重寫C#抽象IDE
- PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- 繼承+多型+抽象類繼承多型抽象
- java抽象繼承-模板方法Java抽象繼承
- TypeScript abstract 抽象類TypeScript抽象
- Java之繼承和抽象類Java繼承抽象
- JAVA介面繼承、抽象類等Java繼承抽象
- 繼承 重寫和抽象類繼承抽象
- 介面和抽象類 (abstract)抽象
- 【JAVA】筆記(5)--- final;抽象方法;抽象類;介面;解析繼承,關聯,與實現;Java筆記抽象繼承
- 抽象類、抽象欄位、抽象方法抽象
- 6-2 抽象類的繼承 (5分)抽象繼承
- 【Java】繼承、抽象、組合Java繼承抽象
- 繼承、抽象個人小結繼承抽象
- 抽象方法和抽象類抽象
- 抽象類和抽象方法抽象
- 介面是否可繼承(extends)介面? 抽象類是否可實現 (implements)介面? 抽象類是否可繼承具體類(concrete class)?繼承抽象
- Java基礎10 介面的繼承與抽象類Java繼承抽象
- java抽象類和抽象方法Java抽象
- C#抽象類C#抽象
- Java抽象類、繼承及多型和介面卡的實現Java抽象繼承多型
- JAVA類的頂層Type抽象和繼承關係Java抽象繼承
- 走進C# abstract,瞭解抽象類與介面的異同C#抽象
- java中的抽象類abstract怎麼使用?Java抽象
- scala_繼承、型別判斷、抽象類、匿名內部類繼承型別抽象
- 物件導向 -- 三大特性之繼承 補充 抽象類 介面類物件繼承抽象
- C#介面、抽象類、普通類和繼承(子類與父類)都有其特定的用途和場景C#抽象繼承
- PHP中的 抽象類(abstract class)和 介面(interface)PHP抽象
- C++中的抽象基類(Abstract Base Class)C++抽象
- PHP 中的抽象類(abstract class)和介面(interface)PHP抽象
- Java 類與物件(繼承extends super關鍵詞 方法重寫 抽象abstract 訪問修飾符/許可權控制符)Java物件繼承抽象
- 有關C#抽象類C#抽象
- Java集合為什麼設計為:實現類繼承了抽象類,同時實現抽象類實現的介面Java繼承抽象
- VS2005入門之深入繼承 – 抽象類和介面及例項剖析繼承抽象
- JAVA學習線路:day01物件導向(繼承、抽象類)Java物件繼承抽象