慕尼黑的夜晚无繁华
接口接口是合同:写界面的人说,“嘿,我接受这样的事情,使用接口的人说“好吧,我写的这门课看起来是这样的".接口是一个空的外壳。..只有方法的签名,这意味着方法没有主体。接口什么也做不了。只是一种模式。例如(伪代码):// I say all motor vehicles should look like this:interface MotorVehicle{
void run();
int getFuel();}// My team mate complies and writes vehicle looking that wayclass Car implements MotorVehicle{
int fuel;
void run()
{
print("Wrroooooooom");
}
int getFuel()
{
return this.fuel;
}}实现一个接口只消耗很少的CPU,因为它不是一个类,只是一堆名称,因此没有任何昂贵的查找。当它很重要的时候,它是很棒的,比如在嵌入式设备中。抽象类与接口不同,抽象类是类。它们的使用成本更高,因为当您继承它们时,需要进行查找。抽象类看起来很像接口,但是它们有更多的东西:您可以为它们定义一个行为。更多的是一个人说,“这些类应该是那样的,他们有共同点,所以填空!”例如:// I say all motor vehicles should look like this:abstract class MotorVehicle{
int fuel;
// They ALL have fuel, so lets implement this for everybody.
int getFuel()
{
return this.fuel;
}
// That can be very different, force them to provide their
// own implementation.
abstract void run();}// My teammate complies and writes vehicle looking that wayclass Car extends MotorVehicle{
void run()
{
print("Wrroooooooom");
}}实施虽然抽象类和接口应该是不同的概念,但实现有时会使该语句不正确。有时,他们甚至不是你所认为的那样。在Java中,这个规则是强有力的,而在PHP中,接口是抽象类,没有声明任何方法。在Python中,抽象类更像是从ABC模块中获得的编程技巧,实际上使用的是元类,因此也是类。在这种语言中,接口与鸭子类型更相关,它是调用描述符的约定和特殊方法(_Method_Method)之间的混合体。与编程一样,在另一种语言中也有理论、实践和实践:-)