12
votes

Y a-t-il des variables abstraites en Java?

Les variables peuvent être Résumé en Java? DO Constructor Support Abstrait Variables? Je ne suis pas sûr, mais je pense que le constructeur prend en charge les variables statiques. S'il vous plaît clarifier mon doute.


1 commentaires

Si une variable peut être abstrait , que pensez-vous que cela signifie? Peut-être devriez-vous enquêter sur votre motivation.


3 Réponses :


24
votes

en Java Seules les classes et les méthodes peuvent être abstraites. Les déclarations variables ne peuvent pas. Cependant, vous pouvez avoir des déclarations variables dont les types sont abstraits. Voir exemple: xxx


3 commentaires

Je suis débutant Java. Comment cela est-il autorisé? >> Instance publique de MyClass; // autorisé . N'est-ce pas de créer une instance d'une classe abstraite?


@ GoldenMean, il n'est pas encore instancié. Public MyClass Instance = New MyClass () lancerait des erreurs. (Si MyClass est abstrait)


abstrait public myMethod (); me jette des erreurs qu'un type de données doit être présent



11
votes

La spécification linguistique répertorie 7 types de variables:

  1. variables de classe - déclarée statique dans une déclaration de classe
  2. variables d'instance - déclaré dans une déclaration de classe sans utiliser le mot-clé statique
  3. composants de tableau - comme i [2] Lorsque nous créons un tableau comme int [] i = neuf int [5]
  4. Paramètres de la méthode - Nom ARGUMENT Valeurs transmises à une méthode
  5. Paramètres de constructeur - Nom ARGUMENT Valeurs passées à un constructeur
  6. Paramètre d'exception-manutention - Créé chaque fois qu'une exception est prise
  7. variables locales - déclaré dans un bloc ( {} ) ou pour la déclaration

    Vous pouvez utiliser tous les types de variables (sauf n ° 4) dans un constructeur: xxx

    abstrait abstrait n'est pas autorisé pour la déclaration variable.


0 commentaires

0
votes

Résumé est un modificateur de non-accès en Java applicable pour les classes, les méthodes mais pas les variables. Il est utilisé pour atteindre l'abstraction qui est l'un des piliers de la programmation orientée objet.


2 commentaires

Avez-vous quelque chose de nouveau dans votre réponse qui n'a pas mentionné dans les réponses précédentes?


Alors pourquoi un agent de mise en œuvre de Serializable doit-il définir long Serialuid?