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

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

米琪卡哇伊
浏览 1195回答 3
3回答

慕尼黑的夜晚无繁华

接口接口是合同:写界面的人说,“嘿,我接受这样的事情,使用接口的人说“好吧,我写的这门课看起来是这样的".接口是一个空的外壳。..只有方法的签名,这意味着方法没有主体。接口什么也做不了。只是一种模式。例如(伪代码):// 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)之间的混合体。与编程一样,在另一种语言中也有理论、实践和实践:-)

倚天杖

之间的关键技术差异抽象类和一个界面是:抽象类常量、成员、方法存根(没有主体的方法)和定义的方法,而接口只能有常数和方法存根.方法和抽象类的成员可以用任何能见度,而接口的所有方法必须定义为public(默认情况下,它们是公共的)。继承抽象类时,混凝土儿童班必须定义抽象方法虽然抽象类可以扩展另一个抽象类,但是不需要定义父类中的抽象方法。类似地,扩展另一个接口的接口是不负责实施方法从父接口。这是因为接口不能定义任何实现。子类只能扩展单个类(抽象或具体),而接口可以扩展,类可以扩展实现多个其他接口.子类可以使用相同或限制较少的能见度,而实现接口的类必须以完全相同的可见性(Public)定义方法。
打开App,查看更多内容
随时随地看视频慕课网APP