l'héritage en java hérite des variables?
Que je comprends de la classe héritée devrait également hériter des variables, alors pourquoi ne pas ce code de travail?
public class a {
private int num;
public static void main(String[] args) {
b d = new b();
}
}
class b extends a {
public b() {
num = 5;
System.out.println(num);
}
}
Vous ne pouvez pas hériter les variables privées
comme une question de fait, vous ne pouvez pas hériter juste toutes les variables d'instance. ils ne sont visibles que si elles sont marquées public/protected/pas de modificateur
oui je le sais. Et alors? 🙂
comme une question de fait, vous ne pouvez pas hériter juste toutes les variables d'instance. ils ne sont visibles que si elles sont marquées public/protected/pas de modificateur
oui je le sais. Et alors? 🙂
OriginalL'auteur Shelef | 2013-02-15
Vous devez vous connecter pour publier un commentaire.
num
de la variable de modificateur d'accès estprivate
etprivate
membres ne sont pas accessibles de la même classe afin de rendreprotected
il sera accessible à partir de la sous-classe.De référence de Contrôle de l'Accès aux Membres d'une Classe
OriginalL'auteur Subhrajyoti Majumder
certainement c'est ce que vous avez besoin, je pense que
OriginalL'auteur Bijoo Singh
private
portée ne peut être accessible que par le contenant de la classe.Pour que cela fonctionne
num
aurait besoin d'être déclaréeprotected
portée.Toutefois cela permettrait également de rendre accessible à d'autres classes du même package. Mon recommedation serait de créer un
get
/set
méthode afin de maintenir le bon encapsulation.vous pourriez alors avoir accès à
num
dans la classeb
en appelantgetNum()
OriginalL'auteur cowls
vous vous êtes trompé,
instance variables
sont pas surchargée dans la sous-classe. l'héritage et le polymorphisme ne s'applique pas pour les champs d'instance. ils ne sont visibles que dans votre sous-classe si elles sont marquées publique ou protégée. actuellement, vous avez super variable de classe marqué privé. aucune autre classe ne peut y accéder. marque elle soit publique ou protégée dans l'ordre pour les autres de la classe pour y accéder.OriginalL'auteur PermGenError
Parce que vous êtes à l'aide de la privé modificateur d'accès. Si vous utilisez privé à un variable d'instance ou à un méthode il ne peut qu'accéder à à l'intérieur de la classe seulement(même plusieurs classes d'inclure un fichier source). Nous pouvons exposer variable privée à l'extérieur en utilisant les getters et les setters. Code suivant compile sans erreur
OriginalL'auteur yapa
Vous n'avez pas accès aux membres privés de la classe de base de la sous-classe. Seuls les membres avec des modificateurs de privé/protégé
OriginalL'auteur Cratylus