2013-07-19 5 views
-4

Je regardais ce lien, mais ne comprenait pas vraiment ce qu'il faut entendre par clonecopie de l'héritage constructeur

Quoi qu'il en soit sur ma question, j'ai donc une classe qui hérite de deux attributs d'une autre classe, la classe elle hérite de set/get et d'un constructeur de copie.

Je veux mettre en œuvre un constructeur de copie dans la classe héritant (ne pas tenir compte des commentaires dans le code)

public class Instructor extends Person{ 
    //officeNumber represents the office number where instructors can be found 
    private String officeNumber; 

    //constructor allows user to define first and last name and office number in demo 
    public Instructor(String fName, String lName, String officeNumber) { 
     super(fName, lName); 
     this.officeNumber=officeNumber; 
    } 
} 

Je veux mettre le constructeur de copie ici et jusqu'à présent, tout ce que je peux faire est de cela, mais je peux » t juste passer dans un objet dans un autre constructeur dans une classe de démonstration, je dois inclure le nom complet

public Instructor(String fName, String lName,Instructor object2) { 
    super(fName,lName); 
    officeNumber=object2.officeNumber; 
} 
//get method for field 
public String getOfficeNumber() { 
    return officeNumber; 
} 
} 

Voici la classe dont elle hérite si c'est une aide

public class Person { 
    //firstName represents the first name of a person 
    private String firstName; 
    //lastName represents the last name of a person 
    private String lastName; 

    //constructor allows programmer to define first and last name of object in demo 
    public Person(String firstName, String lastName) { 
     this.firstName = firstName; 
     this.lastName = lastName; 
    } 

    //copy constructor 
    public Person(Person object2) { 
     firstName = object2.firstName; 
     lastName = object2.lastName; 
    } 

    //get methods for fields 
    public String getFirstName() { 
     return firstName; 
    } 

    public String getLastName() { 
     return lastName; 
    } 
} 
+1

Il semblerait que vous ne compreniez pas la portée variable, les objets, l'héritage ou l'utilisation des méthodes. Votre classe de base vous donne des getters pour 'firstName' et' lastName'. Je suggère fortement de commencer par un bon livre de débutant sur Java ou les tutoriels Oracle Java. –

+0

Si quelque chose n'est pas clair, il suffit de m'envoyer un commentaire et je vais essayer de réparer. – gucci

+0

Oui je sais, je ne peux pas dire fName = object2.fName parce qu'ils ne sont pas de la même méthode, mais précédemment je n'ai pas utilisé l'héritage et ai eu un constructeur de copie pour cette classe et voudrait rétablir cela tout en gardant l'ensemble chose de l'héritage va – gucci

Répondre

1

Veuillez élaborer votre question.

Vous pourriez avoir un constructeur de copie instructeur comme celui-ci,

Ce code est seulement pour la compréhension.

public class Instructor extends Person { 
    public String getIname() { 
     return iname; 
    } 

    public void setIname(String iname) { 
     this.iname = iname; 
    } 

    private String iname; 

    public Instructor(Person p, String myinstructor) { 
     super(p); 
     this.iname = myinstructor; 
    } 

    public Instructor(Instructor clone) { 
     super(clone); 
     this.iname = clone.iname; 
    } 
} 
+0

Quel est le problème avec ce qui précède. Pourquoi est-ce que c'est voté? – Karthikeyan

+0

aucune idée, merci pour la réponse – gucci

+0

Merci d'avoir voté. – Karthikeyan

Questions connexes