Laissez-moi vous dire d'abord le concept de base
Dans la langue Java, la classe et l'interface abstraits sont deux mécanismes qui soutiennent les définitions de classe abstraites. C'est précisément à cause de l'existence de ces deux mécanismes que Java reçoit de puissantes capacités orientées objet. La classe et l'interface abstraites ont une grande similitude à l'appui des définitions de classe abstraite et peuvent même être remplacées par les autres. Par conséquent, de nombreux développeurs semblent avoir des choix arbitraires pour la classe et l'interface abstraites lors de la définition de la classe abstraite. En fait, il y a encore une grande différence entre les deux. Le choix d'entre eux reflète même si la compréhension de l'essence du domaine du problème et la compréhension de l'intention de conception sont correctes et raisonnables.
La classe et l'interface abstraites sont toutes deux utilisées dans le langage Java pour effectuer des classes abstraites (la classe abstraite de cet article n'est pas traduite de la classe abstraite, il représente un corps abstrait, et la classe abstraite est une méthode utilisée dans le langage Java pour définir des classes abstraites. Veuillez prêter attention à la distinction). Alors, qu'est-ce qu'une classe abstraite? Quels avantages utiliser les cours abstraits qui nous apportent?
Dans le concept orienté objet, nous savons que tous les objets sont représentés par les classes, mais l'inverse ne l'est pas. Toutes les classes ne sont pas utilisées pour décrire les objets (classes concrétisées). Si une classe ne contient pas suffisamment d'informations pour décrire un objet concret, une telle classe est une classe abstraite. Les classes abstraites sont souvent utilisées pour représenter les concepts abstraits que nous obtenons dans l'analyse et la conception des problèmes, et sont des abstractions d'une série de concepts concrets qui semblent différents mais essentiellement les mêmes. Par exemple: si nous développons un logiciel d'édition graphique, nous constaterons qu'il existe des concepts spécifiques tels que les cercles et les triangles dans le domaine du problème. Ils sont différents, mais ils appartiennent tous au concept de forme. Le concept de forme n'existe pas dans le domaine du problème. C'est un concept abstrait. C'est précisément parce que les concepts abstraits n'ont pas de concepts concrets correspondants dans le domaine du problème que les classes abstraites utilisées pour représenter les concepts abstraites ne peuvent pas être instanciées.
Les fonctions virtuelles et les interfaces sont souvent utilisées dans le développement de Java. Quelle est la différence entre ces deux-là?
Résumé: Une seule classe parent peut être héritée dans une sous-classe
Interface: les sous-classes peuvent implémenter plusieurs interfaces
Alors, quand utiliser le résumé et quand utiliser l'interface?
Lorsqu'une sous-classe et la classe parent sont dans une relation, par exemple, une personne asiatique est une personne, alors une sous-classe asiatique peut hériter de la classe parent d'une personne.
Lorsque la sous-classe et la classe parent sont comme une relation, par exemple, un superman en Amérique est comme un superman. Les capacités de Superman ne sont pas tout le monde, donc ce ne sont pas tous des attributs. Nous ne pouvons pas attribuer des superpuissances à la classe parent humaine. Pour le moment, nous pouvons utiliser l'interface
Exemple de code:
Classe de résumé public Man {public abstract void eat ();} public interface superpower {public void superpower ();} public class asianman étend l'homme {@Overridepublic void Eat () {System.out.println ("Asiatiques manger avec les Chopsticks");}} public class AmericansUper Man {System.out.println ("American Superman peut voler");} @ OverRidepublic void Eat () {System.out.println ("American Eats with Knife and Fork");}} public static void Main (String [] args) {man anasiman = new asiman (); Americansuperman anamericansuperman = new AmericansUperman (); anasiman.eat (); anamericansUperman.eat (); anamericansUperman.superpower ();}Résultats en cours:
Les Américains mangent avec un couteau et une fourchette American Superman peut voler des Asiatiques manger avec des baguettes
L'utilisation correcte de l'abstrait et de l'interface est bénéfique pour améliorer la lisibilité du code. Lorsque les gens voient étendre, ils sauront ce qu'est un. Quand ils voient l'implémentation, ils peuvent savoir quelles fonctionnalités cette classe a comme a.