在JavaFX中,类Pane的实例是单个节点吗?

时间:2018-09-07 22:31:33

标签: java javafx nodes

因为像Circle或Square这样的典型节点是Node类的实例,而Pane是Parent的子类,而Parent是Node的子类,因此,从技术上讲,用作根节点的Pane类的实例是一个单独的节点。我错了吗?

2 个答案:

答案 0 :(得分:2)

Pane的对象将始终是Node的实例,因为Pane是Node的子类

Class Pane :
java.lang.Object
  javafx.scene.Node
    javafx.scene.Parent
      javafx.scene.layout.Region
        javafx.scene.layout.Pane

这意味着:

    p instance of Nodep时,
  • Pane将为真
  • Node p = new Pane();没事

答案 1 :(得分:0)

我明白你在想什么。您要问Pane的继承层次结构类是否都随Pane一起浮动。答案是否定的,不是,是的,它是单个节点。

实例化继承层次结构时,假设每个父级中的所有代码和子级中的代码(在您的情况下为Pane)都被拼凑成一个类,则可以通过调用Pane()进行实例化。

这是一个很大的二进制blob,包含所有父代的所有成员和方法。

Java语言API可让您将其视为三个不同的对象,从某种意义上来说,您可以将其向下推到层次结构中并创建对它的引用,这些引用位于层次结构中较高的位置,并且通常将其“好像”节点在任何给定时间都是容器和窗格。

但是只创建一个Java对象的实例。如果这是一个内部阶级,那么除外。如果实际上有一个内部类,则该内部类将作为单独的顶级对象创建-它是自己的二进制对象。

HTH