本篇内容主要讲解“C#中继承的知识点总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#中继承的知识点总结”吧!
C#的继承与 C++ 等语言一个重要的不同,就是只能从一个类中继承,这是开发者在权衡了从多个类C#继承的优势与劣势作出的结果。不过,可以从接口继承。另外,继承可传递。构造函数和析构函数不能被继承。
初始化基类
可以在派生类构造函数中添加初始化基类的代码。
public class BaseClass { private int i = 0; public BaseClass(int index) { i = index; } } public class DerivedClass : BaseClass { private int j = 0; public DerivedClass(int index) : base(index) { j = index; } }
注意派生类构造函数中的 : base(index)。将先调用基类的构造函数。
另外,相对于 this,要访问基类的成员,可以使用 base,当前这不能用在静态方法中,因为静态方法没有实例。
C#继承中的重写
◆virtual 用在基类中,指定一个虚方法(属性),表示这个方法(属性)可以重写。
◆override 用在派生类中,表示对基类虚方法(属性)的重写。
以上的基类和派生类都是相对的。B 是 C 的基类,也可以是 A 的派生类,B 中既可以对 A 中的 virtual 虚方法用 override 重写,也可以指定 virtual 虚方法供 C 重写。
不能重写非虚方法或静态方法。重写的基方法必须是 virtual、abstract 或 override 的。为什么 override 也可以重写呢?因为基类中的 override 实际上是对基类的基类进行的重写,由于继承可传递,所以也可以对基类中 override 的方法进行重写。
◆override 声明不能更改 virtual 方法的可访问性。override 方法和 virtual 方法必须具有相同的访问级别修饰符。
不能使用修饰符 new、static、virtual 或 abstract 来修改 override 方法。
◆重写属性声明必须指定与继承属性完全相同的访问修饰符、类型和名称,并且被重写的属性必须是 virtual、abstract 或 override 的。
public class BaseClass { public virtual string GetString() { return "这是一个虚方法。"; } } public class DerivedClass : BaseClass { public override string GetString() { return "这是重写了的方法。"; } }
可以看出,重写与前面讲的重载是有区别的。
C#继承中的方法重载
方法重载并不是类继承中的内容,只是它容易和重写等混淆,所以放在一起谈谈。
什么是重载呢,举个例子,我们在应用 System.IO.File.Create() 方法时,往往可以选择几种参数,这是就方法的重载,同一个作用域、同一个方法名称、具有不同的参数类型或参数个数,在调用方法时,根据参数自动决定使用哪一个方法。
示例
public string GetString() { //... } public string GetString(int index) { //... } public string GetString(string userName) { //... }
在C#中,方法参数没有默认值,可通过重载来实现默认值功能。
到此,相信大家对“C#中继承的知识点总结”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。