java中的"extends"和"implements"在性能和内存等方面有什么区别

SIV*_*R.J 9 java inheritance derived-class interface-implementation

java中的extendsimplements在性能和内存等方面有什么区别.例如,采取以下方案,

1)

public interface PrintResult
{
  public final int NO_ERROR=0;
  public final int SUCCESS=1;
  public final int FAILED=-1;
}


public class PrintProcess implements PrintResult
{
  //Perform some operation
}



2)

public class PrintResult
{
  public final int NO_ERROR=0;
  public final int SUCCESS=1;
  public final int FAILED=-1;
}


public class PrintProcess extends PrintResult
{
  //Perform some operation
}
Run Code Online (Sandbox Code Playgroud)

对于上述场景(1,2),使用extends(派生子类),实现(实现接口)之间的区别是什么.在性能,记忆等方面.?

App*_*ker 8

在一次难忘的问答环节中,有人问James Gosling(Java的发明者):如果你能再次做Java,你会改变什么?.他回答说,我不会上课

Java不允许您扩展多个类.这避免了与多重继承相关的一些问题.但是,您可以选择实现多个接口.这是一个巨大的优势.

有些人还认为extends降低了代码的灵活性.

但是,我怀疑在性能,效率等方面存在巨大差异.事实上,它们甚至可能产生相同的字节码(尽管我不确定).而且你正在比较具有不同功能的两种不同的东西,就像问苹果是否比橘子更有效.