C#面向对象基础(六) 继承
生活随笔
收集整理的這篇文章主要介紹了
C#面向对象基础(六) 继承
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
繼承
描述的是is a kind of 的關系.
比如:Animal類 wolf類. Wolf類是Animal類的子類,Animal類是父類.Wolf類從Animal類派生,Wolf類繼承了Animal類
Wolf是一種Animal.
失敗的設計:
1publicclassWolf
2{
3publicstringname;
4publicintage;
5publicboolishungry;
6privateintweight;
7publicvoidSleep()
8{
9Console.WriteLine("睡覺...");
10}
11publicvoidEat()
12{
13Console.WriteLine("吃羊...");
14}
15}
16publicclassGoat
17{
18publicstringname;
19publicintage;
20publicboolishungry;
21privateintweight;
22publicvoidSleep()
23{
24Console.WriteLine("睡覺...");
25}
26publicvoidEat()
27{
28Console.WriteLine("吃草...");
29}
30}
用到了繼承很好的設計!
classAnimal
{
publicstringname;
publicintage;
publicboolishungry;
privateintweight;
publicvoidSleep()
{
Console.WriteLine("睡覺...");
}
}
publicclassWolf:Animal
{
publicvoidEat()
{
Console.WriteLine("吃羊...");
}
}
publicclassGoat:Animal
{
publicvoidEat()
{
Console.WriteLine("吃草...");
}
}
訪問控制修飾符
public 公開的,誰想訪問都可以.
private 私有的,類內部訪問
proteced 受保護的,子類可以訪問.
默認private
密封類
sealed!
publicclassAnimal
{
publicstringname;
publicintage;
publicboolishungry;
protectedintweight;
publicAnimal(stringn,inta)
{
name=n;
age=a;
Console.WriteLine("Animal構造方法");
}
publicvoidSleep()
{
Console.WriteLine("睡覺...");
}
}
publicclassWolf:Animal
{
publicWolf():base("noname",1)
{}
publicWolf(stringn):base(n,1)
{
}
publicWolf(stringn,inta):base(n,a)
{
Console.WriteLine("Wolf構造方法");
}
publicnewvoidSleep()
{
Console.WriteLine("Wolf睡覺...");
}
publicvoidEat()
{
Console.WriteLine("吃羊...");
base.Sleep();
}
}
描述的是is a kind of 的關系.
比如:Animal類 wolf類. Wolf類是Animal類的子類,Animal類是父類.Wolf類從Animal類派生,Wolf類繼承了Animal類
Wolf是一種Animal.
失敗的設計:
1publicclassWolf
2{
3publicstringname;
4publicintage;
5publicboolishungry;
6privateintweight;
7publicvoidSleep()
8{
9Console.WriteLine("睡覺...");
10}
11publicvoidEat()
12{
13Console.WriteLine("吃羊...");
14}
15}
16publicclassGoat
17{
18publicstringname;
19publicintage;
20publicboolishungry;
21privateintweight;
22publicvoidSleep()
23{
24Console.WriteLine("睡覺...");
25}
26publicvoidEat()
27{
28Console.WriteLine("吃草...");
29}
30}
用到了繼承很好的設計!
classAnimal
{
publicstringname;
publicintage;
publicboolishungry;
privateintweight;
publicvoidSleep()
{
Console.WriteLine("睡覺...");
}
}
publicclassWolf:Animal
{
publicvoidEat()
{
Console.WriteLine("吃羊...");
}
}
publicclassGoat:Animal
{
publicvoidEat()
{
Console.WriteLine("吃草...");
}
}
訪問控制修飾符
public 公開的,誰想訪問都可以.
private 私有的,類內部訪問
proteced 受保護的,子類可以訪問.
默認private
密封類
sealed!
publicclassAnimal
{
publicstringname;
publicintage;
publicboolishungry;
protectedintweight;
publicAnimal(stringn,inta)
{
name=n;
age=a;
Console.WriteLine("Animal構造方法");
}
publicvoidSleep()
{
Console.WriteLine("睡覺...");
}
}
publicclassWolf:Animal
{
publicWolf():base("noname",1)
{}
publicWolf(stringn):base(n,1)
{
}
publicWolf(stringn,inta):base(n,a)
{
Console.WriteLine("Wolf構造方法");
}
publicnewvoidSleep()
{
Console.WriteLine("Wolf睡覺...");
}
publicvoidEat()
{
Console.WriteLine("吃羊...");
base.Sleep();
}
}
轉載于:https://www.cnblogs.com/gnhao/archive/2013/01/06/2847074.html
總結
以上是生活随笔為你收集整理的C#面向对象基础(六) 继承的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2---多线程文件读写
- 下一篇: 做梦梦到捡核桃是什么意思