标签:class rgs 基类 test main nbsp 支持 tcl stc
继承、封装和多态是面向对象编程的重要特性。
其成员被继承的类叫基类也称父类,继承其成员的类叫派生类也称子类。
派生类只能有一个直接基类,所以C#并不支持多重继承,但一个基类可以有多个直接派生类。
继承是可以传递的。
即:
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,"子"); } } }
标签:class rgs 基类 test main nbsp 支持 tcl stc
原文地址:http://www.cnblogs.com/HermitXJH/p/6916676.html