2016-04-17 8 views
0

Ich mache ein Trading-Programm, und lassen Sie uns sagen, wir haben Benutzer, die eine abstrakte Klasse ist, und dann haben wir Aktionär, der Benutzer erweitert und wir haben auch Admin, der Benutzer erweitert. Nehmen wir an, der Admin kann User (User User) löschen. Ich kann nicht herausfinden, wie das Sinn macht, wie können wir einen Benutzer löschen, wenn wir einen Benutzer nicht instanziieren können.Löschen eines Objekts einer abstrakten Klasse in Programm

Ich habe gerade keinen Code Ich mache gerade ein Klassendiagramm dafür und bin gerade dadurch verwirrt worden. Aber für die Zwecke dieser Frage, werde ich einigen kleinen Code hinzu:

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

Antwort

1

Ich kann nicht herausfinden, wie es sinnvoll ist, wie können wir einen Benutzer löschen, wenn wir nicht einen Benutzer instanziiert.

Beide Admin und ShareholderUser verlängern. Instanzen von Admin und Shareholder sind Instanzen von User. Wenn Sie die konkreten Klassen und Shareholder instanziieren, Instanziieren Sie Instanzen von User.

+0

Vielen Dank. Das habe ich total vergessen. – Nabz

0

Gemäß der is-a Beziehung, die die Basis der Vererbung ist, ist jede Unterklasse von User auch ein User unter allen Auswirkungen. So

, selbst wenn man annimmt User nicht als User instanziert werden, jede Unterklasse, die nicht mehr abstract Dose ist und sie sind zu User.

Verwandte Themen