将一个对象转换为其子类或超类

时间:2018-01-06 23:37:48

标签: java inheritance

对于这个问题假装我正在编写一个论坛。这有两种用户:普通用户和管理员。现在假设论坛需要更多的管理员来优化管理。但是,必须从现有常规用户中挑选新管理员。管理员类继承自User。

这是我努力实现的目标。我已经尝试了下面显示的两种方法但它们不起作用,因为一旦它离开方法,User参数仍然是用户。

// First attemp trying casting
public void turnIntoAdminCasting(User u){
    u = (Administrator) u;
}

// Second attemp with constructors
public void turnIntoAdminConstructor(User u){
    u = new Administrator(u);
}

public static void main(String[] args){
    User u = new User();
    User u2 = new User();
    turnIntoAdminCasting(u);
    turnIntoAdminConstructor(u2);
    // Both u and u2 are still User instances
}

0 个答案:

没有答案
相关问题