从本质上观察接口实现和类继承,这里“继承”一词不包含继承接口。
继承,本质是父类有的,子类也有。或者说,继承,主要目的是为了代码重用。
接口,又称协议,约定。接口本身并不定义任何成员,它只约定一系列方法的方法名和形参、返回类型(他们的组合叫方法签名),意思就是提供一系列抽象的功能服务。一个类实现了一个接口,意味着这个类承诺他要遵守这个接口所定义的约定,提供这个接口所要求的全部功能。而调用方只需知道这个对象遵守了哪个接口的约定,能提供什么样的方法/功能,而不必知道关心这个对象属于哪个类型的。这个叫多态。
从名称上看,接口实现和类继承好像都叫“继承”,但一个是多态,一个是代码重用,几乎是一个问题的两个极端。
而抽象类则是介乎两者的折衷,一方面他限制了子类的类型(因为C#只能单继承),重用了自己的代码,另一方面,它多少又定义了一些抽象的方法签名,保证它的子类能提供某种功能。
接口可以多实现。类只能单继承。接口一般一个字母为大写I开头。实现接口并继承类的时候顺序是。先继承类。再实现接口
继承:把两个或多个类的相同属性提取出来~建立父类!
接口:在C#里面不可以有变量。只可以有没有实现的方法。然后他要有实现类的。就是实现这个接口的类。。
在Java,C#都不允许多继承的。。所谓多继承就是一个子类继承多个父类。。
有了接口就间接的实现多继承。。也就是一个类继承一个父类~再实现以个接口。。