La différence entre les interfaces et les classes Java : polymorphisme et flexibilité
Java est un langage de programmation orienté objet, et les interfaces et les classes sont l'un de ses concepts importants. Les interfaces et les classes ont des utilisations et des caractéristiques différentes en Java. Cet article présentera les différences entre les interfaces et les classes du point de vue du polymorphisme et de la flexibilité, et fournira un exemple de code spécifique pour illustrer.
1. Polymorphisme :
Le polymorphisme est l'un des concepts fondamentaux de la programmation orientée objet, ce qui signifie que les objets du même type ont des caractéristiques comportementales différentes. En Java, les interfaces et les classes peuvent réaliser un polymorphisme, mais la manière dont elles sont implémentées est différente.
L'exemple de code est le suivant :
class Animal{ void sound(){ System.out.println("动物发出声音"); } } class Dog extends Animal{ void sound(){ System.out.println("狗发出汪汪声"); } } class Cat extends Animal{ void sound(){ System.out.println("猫发出喵喵声"); } } public class PolymorphismTest { public static void main(String[] args) { Animal animal = new Animal(); Animal dog = new Dog(); Animal cat = new Cat(); animal.sound(); dog.sound(); cat.sound(); } }
Résultat de sortie :
动物发出声音 狗发出汪汪声 猫发出喵喵声
Dans le code ci-dessus, la classe Animal est la classe parent et les classes Dog et Cat sont des sous-classes de la classe Animal. Dans la méthode principale, les objets Animal, Dog et Cat sont créés respectivement et la méthode sound() de la sous-classe correspondante est appelée via la référence de la classe parent. En raison de l'existence d'une substitution, lorsque la méthode sound() de différents objets est appelée, les résultats réels obtenus sont également différents. Cela reflète le polymorphisme de la classe.
L'exemple de code est le suivant :
interface Animal{ void sound(); } class Dog implements Animal{ public void sound(){ System.out.println("狗发出汪汪声"); } } class Cat implements Animal{ public void sound(){ System.out.println("猫发出喵喵声"); } } public class PolymorphismTest { public static void main(String[] args) { Animal dog = new Dog(); Animal cat = new Cat(); dog.sound(); cat.sound(); } }
Résultat de sortie :
狗发出汪汪声 猫发出喵喵声
Dans le code ci-dessus, Animal est l'interface, et Dog et Cat sont des classes qui implémentent l'interface Animal. Dans la méthode principale, les références via l'interface Animal pointent respectivement vers les objets Dog et Cat, et la méthode sound() est appelée. De même, étant donné que les méthodes de l’interface sont implémentées différemment selon les classes, vous obtiendrez des résultats différents lorsque vous appellerez la méthode. Cela reflète le polymorphisme de l’interface.
2. Flexibilité :
La flexibilité fait référence à la question de savoir si les modifications et les extensions des détails de mise en œuvre peuvent être facilement mises en œuvre dans la conception du programme. La différence de flexibilité entre les interfaces et les classes se reflète principalement dans les deux aspects suivants.
En résumé, bien que les interfaces et les classes puissent atteindre le polymorphisme, elles sont différentes dans leurs utilisations et leurs caractéristiques. Les classes obtiennent le polymorphisme principalement par l'héritage et la substitution, et les interfaces obtiennent le polymorphisme en implémentant des interfaces et des références aux interfaces. En termes de flexibilité, les classes sont principalement réalisées par héritage et polymorphisme, tandis que les interfaces sont principalement réalisées par extension et modification au niveau de l'interface. Par conséquent, dans les applications réelles, l’utilisation des interfaces et des classes doit être pondérée selon les besoins pour obtenir de meilleurs résultats de conception logicielle.
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!