1.接口中的函数同基类中的虚函数是不同的.
类A实现接口I后, I就相当于A中的普通成员函数,当B继承A,只能覆盖或继承I的实现方法.而不能重写.
而当A继承基类base,并重写了其中的虚函数,当B继承A后,它仍能重写base中的虚函数。
2。虽然类和接口可以继承任意多个接口,虽然这些接口中有口可能被重复继承如下:
interface I1
{
void paint();
}
interface I2 : I1
{ }
class A : I1,I2
{
public void paint() { Console.WriteLine("this is A");}
}
但它不会出现像C++中因重复继承而导致问题
。
因为,一个接口不论被重复继承多少次,他的实现在第一次被类实现时被完全确定,如1所说成了函数的普通成员,所以即使被多次继承,他的函数都指向同一实现。