首页 > 代码库 > C# 继承的说明
C# 继承的说明
继承、封装和多态是面向对象编程的重要特性。
其成员被继承的类叫基类也称父类,继承其成员的类叫派生类也称子类。
派生类隐式获得基类的,除 构造函数 和 析构函数 以外的所有成员。
派生类只能有一个直接基类,所以C#并不支持多重继承,但一个基类可以有多个直接派生类。
继承是可以传递的。
即:
如果 ClassB 派生出 ClassC,
ClassA 派生出 ClassB,
则 ClassC (孙)会继承 ClassB(子) 和 ClassA(父) 中声明的成员。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestClass { class Program { static void Main(string[] args) { son Son1 = new son(); Son1.Minus(9, 6); Console.Read(); } //父类 public class father { public void Sum(int _a, int _b,String _identity) { int sum = _a + _b; System.Console.WriteLine("我是{3}类,我计算的结果是:{0},我计算的是{1}+{2}", sum, _a, _b, _identity); } } //子类 子类继承父类的元素 public class son:father { public void Minus(int _i, int _j) { this.Sum(10, 10, "父"); this.Sum(_i,_j,"子"); } } } }
//我是父类,我计算的结果是:20,我计算的是10+10
//我是子类,我计算的结果是:15,我计算的是9+6
当基类Sum()方法是私有时,派生类还会继承该方法吗?
没有在B类找到该方法,那么是不是它就没有被继承呢?其实不是的,私有成员其实已经被继承了,
但是它们却不可以被访问,因为私有成员只能被声明它们的类或结构体中才可访问,所以看上去像是没有被继承。
如果我们想降低访问基本,我们可以把基类Sum()方法定义为protected。
能够阻止某个类被其他类继承吗?
答案是可以的,C#提供了一个sealed 修饰符,此修饰符会阻止其他类从该类继承。
class Program { static void Main(string[] args) { son Son1 = new son(); Son1.Minus(9, 6); Console.Read(); } //父类 sealed class father { public void Sum(int _a, int _b,String _identity) { int sum = _a + _b; System.Console.WriteLine("我是{3}类,我计算的结果是:{0},我计算的是{1}+{2}", sum, _a, _b, _identity); } } //子类 子类继承父类的元素 public class son:father { public void Minus(int _i, int _j) { this.Sum(10, 10, "父");//这三条会报错 this.Sum(_i,_j,"子"); } } }
C# 继承的说明
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。