在程序中删除抽象类的对象

时间:2016-04-17 16:54:11

标签: java abstract

我正在制作一个交易程序,并且假设我们有User是一个抽象类,然后我们有股东扩展用户,我们也有扩展用户的Admin。让我们说管理员可以删除用户(用户用户)。我无法弄清楚这是有道理的,当我们无法实例化用户时,我们如何删除用户。

我现在没有任何代码我只是为此制作一个类图,只是对此感到困惑。但是为了这个问题,我会添加一些小代码:

public abstract class User{
  private String username;
  private String password;
}


public class Shareholder extends User{
  private double balance;
  #constructor to follow + setter and getter
}

public class Admin extends User{
  public void deleteUser(User user){..}
}

2 个答案:

答案 0 :(得分:1)

  

我无法弄清楚这有什么意义,我们怎样才能删除用户   当我们无法实例化用户时。

AdminShareholder都延伸UserAdminShareholder的实例是User的实例。实例化具体类AdminShareholder时,实例化User的实例。

答案 1 :(得分:0)

根据is-a关系,它是继承的基础,User的任何子类在所有效果下都是User

因此,即使假设User无法实例化为User,任何不再abstract的子类都可以User,而且它们也是groups { "fsfdsfsdf" { title: "Tasks" "todos" { "fsdfsdf": true } } let ref1 = Firebase(url: "https....io/groups/fsfdsfsdf/todos/fsdfsdf") let ref2 = Firebase(url: "https....io/todos/fsdfsdf") // after Edit I call this methods ref1.updateChildValues(true) // true -> true observer doesn't catch ref2.updateChildValues(editTodo)