答案 0 :(得分:2)
是的,面向对象编程的整个概念取决于能够创建其他对象的对象。
在Java中,我们通过调用new ClassB()
等构造函数来创建实例,该构造函数为我们实例化一个新的ClassB对象。如果我们想让ClassA实例化ClassB,我们只需要让ClassA调用ClassB的构造函数。以下是我们如何用Java实现它
public class ClassA{
public ClassA(){
ClassB instance1 = new ClassB();
}
}
这里我已经做到这一点,当 ClassA 被实例化(调用它的构造函数)时,它会创建一个名为 instance1 ClassB 的新实例>
答案 1 :(得分:0)
如果我理解你的要求,是的,你可以通过继承或组合来做到这一点。
继承:
ClassB extends ClassA {
public ClassB() {
super(); // calls ClassA constructor
// do more stuff
}
}
成分:
ClassX {
private ClassY y;
public ClassX() {
y = new ClassY(); // calls ClassY constructor
// do more stuff
}
}
祝你好运!
答案 2 :(得分:0)
是的,这是Java的重要组成部分,也是任何面向语言的对象。
如果有两个对象,A和B,B是A的子类,则可以使用B实例化A:
A baseObject = new B();
这里的关系表示'B'是A'A':意味着你有A的任何地方,你可以在它的位置实例化一个B,因为B是A的正确子类型。注意那么你仍然只能使用A的如果你这样使用它就接口。
使用列表时可以看到Java中的真实示例。 Java中的List类是从Collection派生的抽象容器类型。在这个例子中,List是我们的'A'类型。有许多不同类型的列表,例如LinkedList和ArrayList。 LinkedList和ArrayList是List的正确子类型,在此示例中为“B”类型。因此,您可以将List初始化为其任何子类型:
List<String> stringList = new ArrayList<String>();
或
List<String> stringList = new LinkedList<String>();
希望这有一些帮助。