Как я могу вызвать защищенную переменную в методе подкласса в функции равенства? - PullRequest
0 голосов
/ 08 ноября 2019

Это довольно простой метод равных.

Вот что у меня в коде:

public boolean equals(Object other) 
      if (other == null) {
                return false;
            }
            if (!(other instanceof BinaryTree)) {
                return false;
            }
            return this.equalsUtil(this.root, other.root);
        }

Вот начальная проблема

public class BinaryTree {
    protected class Node {
        //instancee variables and a constructor
    }
    protected Node root;
    //remainder ommited for brevity

Я могу 't call other.root (Object other - параметр для равных), как я могу это сделать тогда?

Обратите внимание, что мой класс public class MyBinaryTree extends Bina

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Защищаемая переменная не имеет к этому никакого отношения. Вам просто нужно разыграть other до BinaryTree, например BinaryTree o = (BinaryTree) other; return this.equalsUtil(this.root, o.root);

0 голосов
/ 08 ноября 2019

Следуйте советам Эллиота или создайте функцию get, чтобы найти точное значение, которое вы хотите. Может быть, сделать функцию, которая проверяет, является ли узел корневым. Вам нужно проверить, указывает ли указатель на ваш узел на то же, что и root.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...