“与”的区别是什么;扩展;及;实施;在性能和内存等方面使用java

“与”的区别是什么;扩展;及;实施;在性能和内存等方面使用java,java,inheritance,derived-class,interface-implementation,Java,Inheritance,Derived Class,Interface Implementation,在性能和内存等方面,在java中扩展和实现有什么区别。 例如,以以下场景为例 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 }

在性能和内存等方面,在java中扩展实现有什么区别。 例如,以以下场景为例

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
}
对于上述场景(1,2),使用扩展(派生子类),实现(实现接口)之间的区别是什么。在性能、内存等方面

在一次令人难忘的问答环节中,有人问James Gosling(Java的发明者):如果你可以重新使用Java,你会改变什么。他回答说:“我会不上课。”

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

有些人还认为
扩展了
降低了他们代码的灵活性


然而,我怀疑在性能、效率等方面是否存在巨大差异。事实上,它们甚至可能产生相同的字节码(尽管我不确定)。您正在比较两个具有不同功能的不同事物,就像询问苹果是否比橙子更有效。

一个类扩展另一个类并实现接口。接口扩展了另一个接口。
接口没有任何实现的方法所有定义的方法都是空的,所以如果类从接口继承,它应该实现它的方法。但是,如果Class1继承自Class2,那么它已经有了一些工作方法(来自Class2),并且只是扩展了Class2。

队列
可能被某人复制。
对不起,我的英语不好。所以请原谅我的错误a)做一个基准测试和报告。b) 编译和反编译并比较结果。c) 我不期望有任何性能差异。我应该去哪里?在这两门课上打100万次“新”电话?我同意:这就像问苹果是否比桔子更有效。嗨,我需要用一些实时的例子进行更多的解释。这样会很有帮助。因为在互联网上的一些文章中,我注意到两者在性能上有巨大的差异。有时,在那个地方,如果我们使用接口,它会影响性能。所以请在实践中给出更多的解释,它们是否产生相同的字节码并不重要。然而,字节码其实并不重要,因为JIT将很容易变得足够聪明,从而消除这种情况。