Un type d'énumération est une collection de valeurs fixes et ne peut pas être hérité, mais les méthodes membres et les variables peuvent être définies. L'interface définit un ensemble de méthodes et de constantes, qui ne peuvent pas être instanciées, mais peuvent être implémentées par la classe. Les méthodes de l'interface peuvent uniquement être déclarées mais ne peuvent pas être implémentées, mais des constantes peuvent être définies.
En Java, les types d'énumération et les interfaces sont tous deux des fonctionnalités de langage très utiles, mais il existe des différences évidentes entre eux.
Tableau 1 : La différence entre les types d'énumération et les interfaces
Caractéristiques | Type d'énumération | Interface |
---|---|---|
Type de valeur | Fixe et limité | Variable, peut être modifié selon les besoins Ajout de |
l'héritage | ne peut pas être hérité | peut être implémenté par plusieurs classes |
les méthodes membres | peuvent être définies | ne peuvent être déclarées, pas implémentées |
variables membres peut définir des constantes | Les constantes et les méthodes peuvent être définies | |
Ne peut pas être instancié | Ne peut pas être instancié |
public enum DayOfWeek {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
public interface Shape {
double getArea();
double getPerimeter();
}
public enum ShapeType implements Shape {
CIRCLE {
@Override
public double getArea() {
return Math.PI * radius * radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
},
RECTANGLE {
@Override
public double getArea() {
return length * width;
}
@Override
public double getPerimeter() {
return 2 * (length + width);
}
}
}
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!