Я начинающий программист и совершенно новичок в Java.Все работает хорошо, за исключением того, что я не могу пройти по этому дереву.
public class Node extends Utility {
protected Node left;
protected Node right;
public Node() {this.left = null; this.right = null;}
public Node go_left() {return this.left;}
public Node go_right() {return this.right;}
public void connect_left(Node connection) {this.left = connection;}
public void connect_right(Node connection) {this.right = connection;}
}
public class Member extends Node{
protected String Name;
protected int id;
public Member() {
this.Name = null;
this.id = 0;
}
public Member(String Name, int id){
this.Name = Name;
this.id = id;
}
public int get_member_id() {return id;}
public String get_status() {return status;}
}
public class MemberList{
protected Member m_root;
public MemberList() {
this.m_root = null;
}
public int validate_member_wrapper (int member_id){
return validate_member(this.m_root, member_id);
}
protected int validate_member(Member root, int member_id) {
if(root == null)
return -1;
if(root.get_member_id() == member_id) {
if(root.get_status().compareToIgnoreCase("Active") == 0)
return 1;
else
return 0;
}
if(root.get_member_id() < member_id)
return validate_member(root.go_left(), member_id);
else
return validate_member(root.go_right(), member_id);
}
}
Я попытался запустить этот код, но ошибка говорит, что я не могу преобразовать объект типа Node в Member.
validate_member(root.go_left(), member_id)
и
validate_member(root.go_left(), member_id)
не позволяют мне передавать объект типа Node.Однако, насколько я понимаю, член, унаследованный от узла, не разрешает пропускать узел?Как это исправить?
Edit1: Как кто-то указал в комментарии, я попытался исправить это, переопределив функции go_left () и go_right () в классе Node к классу Member, но каким-то образом это показалоошибка говорит о том, что Узел не может быть преобразован в Член.
Вот изменения
public class Node extends Utility {
protected Node left;
protected Node right;
public Node() {this.left = null; this.right = null;}
public Node go_left() {return this.left;}
public Node go_right() {return this.right;}
}
public class Member extends Node{
protected String Name;
protected int id;
public Member() {
this.Name = null;
this.id = 0;
}
public Member(String Name, int id){
this.Name = Name;
this.id = id;
}
public Member go_left() {return this.left;}
public Member go_right() {return this.right;}
public int get_member_id() {return id;}
public String get_status() {return status;}
}