Java 实施方法的不同方式

Java 实施方法的不同方式,java,Java,我开始编写代码,我发现这个问题是关于从另一个项目中实现方法的 例如,在这段代码中,我可以在我的项目CreateCasDefinitions中使用CreateCasPageObject中使用的方法,但我知道如果我在这个类中使用extends,我也可以使用这些方法。我很困惑 我可以使用这样的方法: Ingrearecas.FirstMethod()在下面的项目中 它们是否与我使用的扩展和方式相同 公共类CreateCasdefinitions{ 私有的lectorexcelexcel; 私有静态XS

我开始编写代码,我发现这个问题是关于从另一个项目中实现方法的

例如,在这段代码中,我可以在我的项目CreateCasDefinitions中使用CreateCasPageObject中使用的方法,但我知道如果我在这个类中使用extends,我也可以使用这些方法。我很困惑

我可以使用这样的方法: Ingrearecas.FirstMethod()在下面的项目中

它们是否与我使用的扩展和方式相同

公共类CreateCasdefinitions{
私有的lectorexcelexcel;
私有静态XSSFSheet hoja;
私人int fila;
@以前
之前的公共无效(场景){
this.scenarioActual=场景;
}
@台阶
私有CreateCasPageObject Ingrearecas;
私有ValidacionCasosPageObject validacionCasos;
我想知道如果我将以下内容

private CreateECASPageObject IngresarECAs;
或者说:

public class CreateECAsDefinitions extends CreateECASPageObject

开始时。

这不是实现方法的不同。这是

如果您不需要或不希望
createcasdefinitions
或继承
createcaspageobject
的所有可访问字段和方法,则不应使用
extends
。换句话说,您通过“组合”而不是“继承”来隐藏可能父类的功能

考虑到您尚未显示方法定义,很难说在您的场景中应该首选哪种方法,但是如果您发现自己为
createCasPageObject
类中的每个方法都编写了此模式,那么您可能希望使用继承

private CreateECAsPageObject ingresarECAs ;

public void firstMethod() {
    ingresarECAs.firstMethod();
}

你问继承和组合之间的区别。这是一个广泛的主题。
继承(
extends
关键字)和组合(
private
类中的实例字段)是设置两个类之间依赖关系的两种不同方法。
一般的习惯用法是组合优于继承,因为组合在可能性方面更灵活(例如,您可以使用多个字段组合,但继承一个类),并减少两个类之间的耦合。但在某些情况下,继承可能有助于减少锅炉板代码(重复代码)或者冗长

在继承的情况下,您需要编写
firstMethod()
,而在组合的情况下,您必须编写
Ingrearecas.firstMethod()
。在这样一个简单的情况下,很难从第一种或第二种方式中发现巨大的设计优势。
但是在某些情况下,定义一个基本测试类可能会迫使其他测试类依赖于相同的逻辑。

因此,我明确地认为,您可能应该考虑您的需求,并根据它们将光标设置在继承和组合之间的正确位置。

您好,谢谢您的回答。但我感到困惑,因为我可以访问“CreateCasPageObject”类的方法没有使用extends,所以我不确定是否将此私有CreateCasPageObject放入了Ingrearecas,它几乎与使用extends相同。您好,谢谢您的回答。但是我很困惑,因为我可以访问类“CreateCasPageObject”的方法如果没有使用extends,那么我不确定是否将此私有CreateCasPageObject IngreareCas放入,它几乎与使用extends相同。您需要使用
IngreareCas的实例来使用它的公共方法,是的。它与使用extends不同,因为您不需要覆盖或公开它的所有方法。