python抽象类和接口的区别_接口和抽象类有什么区别?

接口

接口是合同:写界面的人说,“嘿,我接受这样的事情,使用接口的人说“好吧,我写的这门课看起来是这样的".

接口是一个空的外壳。..只有方法的签名,这意味着方法没有主体。接口什么也做不了。只是一种模式。

例如(伪代码):// 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)之间的混合体。

与编程一样,在另一种语言中也有理论、实践和实践:-)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值