本文的主要内容节选自博客园:http://www.cnblogs.com/jiajiayuan/archive/2011/09/09/2172292.html
我们都知道继承、封装和多态是面向对象编程的重要特性。
其成员被继承的类叫基类也称父类,继承其成员的类叫派生类也称子类。
派生类隐式获得基类的除构造函数和析构函数以外的所有成员。
派生类只能有一个直接基类,所以C#并不支持多重继承,但一个基类可以有多个直接派生类。
下面讲讲继承的一些特性:
1.继承是可以传递的,ClassA 派生出 ClassB,ClassB 派生出 ClassC,则 ClassC 会继承 ClassB 和 ClassA 中声明的成员
class A { public void Sum(int i,int j) { int sum = i + j; Console.WriteLine("I am A ,my sum ={0}",sum); } } class B : A { public void Minus(int i,int j) { int minus = i - j; Console.WriteLine("I am B ,my minus ={0}", minus); this.Sum(3, 4);
} class InheritanceTest1 { static void Main(string[] args) { B b = new B(); b.Minus(3, 4); Console.Read(); } } |
2.基类中的私有成员能被继承吗?可以,但是它们却不可以被访问,因为私有成员只能被声明它们的类或结构体中才可访问,所以看上去像是没有被继承。
3.能够阻止某个类被其他类继承吗?可以,使用sealed 修饰符
sealed class A { int test; public void Sum(int i,int j) { int sum = i + j; Console.WriteLine("I am A ,my sum ={0}",sum); } } class B : A { public void Minus(int i,int j) { int minus = i - j; Console.WriteLine("I am B ,my minus ={0}", minus); this.Sum(3, 4); //编译器会报错 } } |