gpt4 book ai didi

java - 具有两个以不同对象为父对象的构造函数的类

转载 作者:行者123 更新时间:2023-11-29 04:29:25 25 4
gpt4 key购买 nike

我想创建一个新类,它必须能够接受两种不同类型的对象(具有几乎相同的函数和变量)。我正在尝试为此使用两个构造函数。由于两个可能的参数类中都有几乎相同的变量,因此我想使用名为 parent 的相同变量来引用它们。

我尝试过的:

class Segment{
float phi;
float theta;
float len;
Base parent;
Segment parent;

public Segment(Base parent, float len, float phi, float theta) {
this.len = len;
this.phi = phi;
this.theta = theta;

this.parent = parent;
}

public Segment(Segment parent, float len, float phi, float theta) {
this.len = len;
this.phi = phi;
this.theta = theta;

this.parent = parent;
}

// ... functions calling parent.variableName
}

这是不可能的,因为 parent 是重复的,有什么方法可以解决这个问题?

编辑

SegmentBase 唯一的共同点是一些变量告诉开始结束点,将新的 Segment 连接到。除此之外,Base 是静止的,而 Segment 是移动的

最佳答案

做到这一点的 OO 方法是为两个类创建一个公共(public)父类(super class):

public abstract class Super {
// Here you declare all fields and methods that your classes have in common.
}

public final class Base extends Super { ... }
public final class Segment extends Super { ... }

然后你的类看起来像这样:

public final class YourClass {
...
private final Super parent; // only once
public YourClass(Super parent, ...) {
...
this.parent = parent;
}
}

也就是说,您只有一个构造函数和一个引用父类(super class)的字段。

关于java - 具有两个以不同对象为父对象的构造函数的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44431425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com