抽象类
理解为Is-A的关系,抽象类中可以带有其他方法,抽象方法需要带访问权限修饰符(不能是private),子类中必须实现所有的抽象方法(父类中定义抽象方法,子类中来实现),c#与java中class不可以多继承(为避免c++中的菱形继承问题)
接口
理解为Can-Do的关系,接口中只有抽象的方法无其他方法,抽象的方法不可带有访问权限修饰符,继承了interface的类必须实现其中的所有方法,继承了某个接口就表示愿意遵循某种约定(实现接口中的方法),接口可以多继承
抽象类
理解为Is-A的关系,抽象类中可以带有其他方法,抽象方法需要带访问权限修饰符(不能是private),子类中必须实现所有的抽象方法(父类中定义抽象方法,子类中来实现),c#与java中class不可以多继承(为避免c++中的菱形继承问题)
接口
理解为Can-Do的关系,接口中只有抽象的方法无其他方法,抽象的方法不可带有访问权限修饰符,继承了interface的类必须实现其中的所有方法,继承了某个接口就表示愿意遵循某种约定(实现接口中的方法),接口可以多继承