Interface avec aucune méthode
Pourquoi Java introduit une interface qui n'a pas de méthodes définies dans? Par exemple Cloneable
Serializable
Type
et beaucoup plus.
Deuxième chose : Dans Class.class
paquet il y a une méthode définie registerNatives()
sans corps et est appelée à partir de statique, mais Class.class
n'est pas abstrait, mais final
. Pourquoi donc?
et Pourquoi Java besoin d'un peu de méthode, sans corps à être appelée à partir de statique bloc.?
source d'informationauteur Vimal Bera
Vous devez vous connecter pour publier un commentaire.
Ce sont appelé Tagged ou un Marqueur de l'interface. Ils ne sont pas utilisés de toute utilisation ou opération. Ces méthodes sont utilisées à l'étiquette ou le marquage d'une classe. De sorte que vous pouvez déterminer si someclass est un enfant de ces classes.
Si vous regardez attentivement, vous pouvez voir la déclaration est
Donc
registerNatives
est une des méthodes indigènes.Donc, qu'est-ce que des méthodes indigènes. Si vous voyez cette sorte de question
Afin que ces méthodes sont chargés à partir des codes. Si vous n'avez pas besoin de déclarer le corps de la méthode, mais encore ils ne sont pas abstraites, car ils ont leur mise en œuvre à partir des codes.
Interface marqueur est utilisé comme une balise pour informer un message pour le compilateur de java, de sorte qu'il peut ajouter un comportement particulier à la classe de la mettre en œuvre. Java interface marqueur n'a pas de membres.
Le but de Marqueur interfaces est de forcer un certain type de fonctionnalité dans les classes en fournissant des fonctionnalités à une classe si elle implémente l'interface marqueur.
Lire Java Interface Marqueur voir aussi Qu'est-ce que l'utilisation de marqueur interfaces en Java?
Pour la première celui que vous êtes en train de demander à un Marqueur de l'Interface. Marqueur Interfaces sont censés ne pas ajouter quoi que ce soit à des comportements, mais la prise en charge seulement polymorphe de la transformation de l'objet. par exemple, Serializable fait un objet capable de la diffusion sur les JVM limites. Marqueur interfaces de suivre le " universal type de substitution de la philosophie.
Pour le second, vous êtes en train de demander à JNI. Java n'est pas de mettre en œuvre tout son code en Java formulaire. Je veux dire dans les classes et le code qui suivent la syntaxe Java. Un moment ou l'autre, vous devez forer vers le bas de la plate-forme native API pour mettre en place quelque chose pour que l'API. par exemple, les sockets TCP et de la communication. C'est cette caractéristique de Java qui est indépendant de la plateforme. La JVM d'exécution est dépendant de la plate-forme, car il utilise une plate-forme native basée sur des méthodes et des dll ou .ainsi, les bibliothèques à mettre en œuvre et de les intégrer à la plate-forme. Nous, en tant que programmeurs d'appel du haut niveau Java SDK appels d'API.
méthode native sont mis en œuvre dans la JVM elle-même.
Ce qui ne l'registerNatives() la méthode?
Cela s'appelle de la statique bloc parce que nous avons besoin d'appeler cette méthode lorsque les classes sont chargées et pas quand c'est l'instance est créée.
Un de le "nettoyer" les caractéristiques du langage de programmation Java est qu'il impose une séparation entre les interfaces (pure comportement) et des classes (état et le comportement). Les Interfaces sont utilisées en Java pour spécifier le comportement des classes dérivées.
Souvent, vous allez venir à travers des interfaces en Java qui n'ont pas de comportement. En d'autres termes, ils sont tout simplement vide de définitions de l'interface. Ceux-ci sont connus en tant que marqueur des interfaces. Quelques exemples de marqueur dans les interfaces de l'API Java comprennent:
Marqueur interfaces sont aussi appelés "tag" interfaces puisqu'ils balise de toutes les classes dérivées dans une catégorie en fonction de leur objet. Par exemple, toutes les classes qui implémentent l'Clonable interface peut être cloné (c'est à dire, la méthode clone() peut être appelée sur eux). Le compilateur Java vérifie que si la méthode clone() est appelée sur une classe et la classe implémente l'Clonable interface. Considérons, par exemple, l'appel suivant à la méthode clone() sur un objet o:
Si la classe SomeObject n'implémente pas l'interface Clonable (et Clonable n'est pas mis en œuvre par l'un des super-classes qui SomeObject hérite de), le compilateur va marquer cette ligne comme une erreur. C'est parce que la méthode clone() ne peut être appelée que par des objets de type "Clonable." Par conséquent, même si Clonable est une interface vide, il sert un objectif important.