c# 方法的继承

如果基类一个方法,子类再定义一个同名的方法。则基类的方法被覆盖。这个很好理解。在实例化的时候。子类的对象当然会继承基类定义的方法。这个时候,子类的对象已经 有了这个方法。此时,再对子类定义一个同名方法,那么就覆写了基类的这个方法。这个规则是默认这样的。

interface更像是一个方法类。这一类方法,即方法的集合,是存在很多类当中的。所以单独把它拿出来,归为一个类。它里面的方法,是存在在很多种类的。因为它只有方法,是方法的集合。因此,我们也认为它是抽象的。它是没有成员变量的。成员变量在我的话语世界里,实际上是对象的属性。它是没有属性的,也就是,不会有实际的对象实例。所以,它是抽象的。不能让它实例化。

interface类里的方法,是继承它的子类的方法的必要集合,但不是充分集合。什么意思呢?就是只要interface类里定义了的方法,它的子类里,是必须存在的。但是,子类里面的方法,是等于或者多于它的。子类没必要非要是抽象的,因此子类还可以定义有成员变量。

interface的这些特性或者说规定,就保证了有 一类方法必然地扩步存在于若干个子类里。interface可以做为基类,被继承,它的方法继承到了子类里面。但是因为子类有很多种方法,继承的只是一部分方法,因此,成了接口。那么,这个接口用来做什么?仅仅是用来实施事先已经定义好类型的方法吗?这是我接下要思考的问题。

abstract class除了不能实例化以外,其他和普通的class没有区别。子类可以继承它的成员变量和方法,也可以对继承到的它的成员覆写。你可以定义一个不能实例化的类,用来管理类和对象,起一个笼统的作用。

你可能感兴趣的:(C#)