我是初学者程序员,对 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);
}
}
我尝试运行此代码,但错误提示我无法将对象类型节点转换为成员。
validate_member(root.go_left(), member_id)
和
validate_member(root.go_left(), member_id)
不允许我传入 Node 类型的对象。但是,据我了解,成员从节点继承,不允许传递节点?你如何解决这个问题?
Edit1:正如评论中有人指出的那样,我试图通过将 Node 类中的 go_left() 和 go_right() 函数覆盖到 Member 类来解决这个问题,但不知何故,它显示了一个错误,表明 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;}
}