一晃眼的功夫一周又过去了,这周学习的东西让我感觉倒不是太难,比起C#感觉好多了。上次把有关C#的知识点说了一些,今天继续……
一、同一个类中的函数具有相同的方法名,但参数的类型,个数,顺序不一样(至少满足其一)的函数互为函数的 重载。函数的重载功能一样,只是处理的内容和方式不一样。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 public class People 2 { 3 //这两个函数就互为重载 4 public People() 5 { 6 } 7 public Peolpe(int i,string name) 8 { 9 } 10 }
二、继承:扩展自身的功能,通过关键字“:”实现
1、继承中的构造函数
默认情况下,子类中的构造函数调用的是父类的空的构造函数。
2、方法的重写
在父类中,一个函数可以被子类重写,必须在方法的前面加关键字virtual修饰;
在子类中,要重写父类的方法,则在方法前面加关键字override。
子类的重写是为了加强其功能。
3、多态
(1)上转型
把子类对象中的父类对象赋值给父类对象。此时父类对象可以调用自己的方法和已经重写过的方法,如果方 法没被重写,调用的还是自己的方法。
(2)下转型
把已经上转型后的父类对象所对应的原来的子类对象再赋值给子类对象,此时子类对象可以调用自身的方法,继承来的方法和已经重写过的方法。
*******下转型需要通过显示的类型转换。
注意-----------C#只支持单继承,一个类只能有一个直接的父类。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 using System; 2 public class StudyMutil1 3 { 4 public static void Main() 5 { 6 //上转型,把子类对象赋值给了父类对象 7 Father f = new Son(); 8 f.Sing(); 9 //下转型,把已经上转型后的父类对象f赋值给了子类对象son 10 Son s = (Son) f; 11 } 12 } 13 14 public class Father 15 { 16 //父类的方法被子类重写 17 public virtual void Sing() 18 { 19 Console.WriteLine("给我一个理由忘记"); 20 } 21 22 } 23 //son继承了father 24 public class Son:Father 25 { 26 //重写父类的方法 27 public override void Sing() 28 { 29 Console.WriteLine("相遇的魔咒"); 30 } 31 }