在我的程序中,我有一个用户类和两个子类customer和seller。在程序开始时,我通过authuser变量跟踪当前登录的用户(客户或卖方)。我遇到的问题是,在一个单独的方法中,我必须访问authuser中的一个变量,该变量特定于customer类,并且不在user类中。我该如何访问它,因为如果我尝试获取变量,它会显示一个错误,因为authuser被声明为用户类型而不是客户类型。我试着检查authuser的示例,看看他们是客户还是卖家,并相应地强制转换变量,但没有成功。
编辑:我的错,我不知道它有多模糊。代码设置如下
我的问题是authuser.variableineed无法识别,因为variableineed不是用户类的一部分,即使authuser可以包含客户对象。
public class User {
String user;
String pass;
}
public class Customer extends User{
LinkedList<> variableINeed;
}
public class Seller extends User{
//other irrelevant info
}
public class Implementation(){
public static void main(String[] args){
//calls a login() function which initializes authUser to either a Customer or Seller object based on who logs in
//method that needs authUser.variableINeed
}
User authUser;
}
2条答案
按热度按时间syqv5f0l1#
如果我正确理解你的问题,那么你必须
User
反对Customer
:eit6fx6z2#
没有片段就很难理解你在说什么。您说过authuser特定于customer类,不在user类中,但authuser也声明为用户类型。我假设它们都在这两个类中,但是您希望访问父类的代码段。您可以使用super关键字引用它。参考文献:https://docs.oracle.com/javase/tutorial/java/iandi/super.html