Que signifie le fait d'étendre une classe statique en Java?
En regardant certaines java exemple, les codes du web, je suis tombé sur de la syntaxe suivante:
public class WordCount {
public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> {
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
//...
}
}
//...
}
À venir à partir de C#, de l'endroit où les classes statiques ne peuvent pas hériter d'une autre classe, j'ai été un peu confus au sujet de la extends
mot-clé après le Map
classe. Que signifie le fait d'étendre une classe statique, et quels sont les avantages-t-il?
OriginalL'auteur Yeonho | 2013-05-28
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas une telle chose comme statique des classes en Java (pas de la même manière qu'en C#). C'est ici une
intérieurclasse imbriquée et l'attribut static signifie qu'il peut être utilisé sans avoir une instance de l'extérieur de la classe.Exemples
Une statique de la classe imbriquée peut être instancié comme ceci:
Toutefois, un non-statique à l'intérieur de la classe doivent être créés dans le cadre d'une instance de l'extérieur:
Code de Java documentation sur les classes imbriquées.
Fait.
nice. merci. Il était évident, comme vous l'a expliqué avant. mais c'est beaucoup mieux. pas de place pour l'erreur. 🙂
OriginalL'auteur Cedric Reichenbach
Le modificateur static, lorsqu'il est appliqué à des classes, signifie deux choses très différentes en c# et java.
En c#, le modificateur static d'une classe applique de faire de tous de cette catégorie de membres statiques. Ainsi, en c#:
Cependant, en java, le statique modificateur appliqué à une classe signifie que la classe est un membre statique de la classe dans laquelle elle est imbriquée, et pas que ses membres doivent être statiques. Ainsi, en java:
OriginalL'auteur James Dunn
Dans ce contexte, statique signifie que la classe Map n'avez pas besoin d'une instance de WordCount pour être instanciée.
Il n'a rien à voir avec le fait d'être héritables (final est le mot clé qui fait que, tout de même)
extends
mot-clé après leMap
classe. que faut-il faire?il n'y a pas de problème avec ça. Un
static
classe est toujours unclass
et peut s'étendre à partir d'un autreclass
et de mettre en œuvreinterface
s.Puisque vous ne pouvez pas créer des instances de classes statiques, ce qui est l'avantage de l'héritage d'une aide dans les classes statiques?
vous avez en effet créer des instances de ces classes. Avez-vous essayé? Probablement vous êtes confus
static
classes avecabstract
classes.Je vois. donc java mot-clé static signifie quelque chose de différent à partir de C#. merci
OriginalL'auteur njzk2