2016-04-17 4 views
0

私は取引プログラムを作成しており、抽象クラスであるUserを持っているとし、Userを拡張するShareholderを持ち、Userを拡張するAdminを持っています。管理者がdeleteUser(ユーザーユーザー)を実行できるとします。私はこれがどういう意味か分かりません。ユーザーをインスタンス化できないときに、ユーザーを削除するにはどうすればいいですか?プログラムで抽象クラスのオブジェクトを削除する

私は今、コードを作成していません。私はこれについてクラス図を作成しており、これで混乱しています。しかし、この質問のために、私はいくつかの小さなコードを追加します:

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){..} 
} 

答えて

1

私たちは、ユーザーをインスタンス化できない場合、我々は、ユーザー を削除することができますどのように、これは理にかなっている方法を見つけ出すことはできません。

Admin

ShareholderUserを拡張どちら。 AdminおよびのインスタンスはUserのインスタンスです。具体的なクラスAdminShareholderをインスタンス化すると、Userのインスタンスがインスタンス化されます。

+0

ありがとうございました。私はそれを完全に忘れてしまった。 – Nabz

0

継承の基底であるis-aの関係によれば、Userのサブクラスもすべての効果の下でUserです。だから、

は、さえUserは、Userとしてこれ以上abstract缶ではありません任意のサブクラスをインスタンス化することはできませんし、彼らはあまりにもUserあると仮定します。

関連する問題