Maison Java javaDidacticiel Orienté objet (interface, polymorphisme)

Orienté objet (interface, polymorphisme)

Jun 26, 2017 am 11:09 AM
多态 对象 接口 面向

Interface

(1) Lorsque les méthodes de la classe abstraite sont abstraites, Java fournit une nouvelle forme d'expression : l'interface, qui est une collection de fonctions Impossible de créer un objet.
(2) format
Interface parent : interface publique Tnter{


}
Sous-classe : classe publique interImp implémente Itner{

>

Utilisation des interfaces
1. Les interfaces ne peuvent pas créer d'objets
2. Définir des classes d'implémentation pour implémenter les interfaces
Mots-clés d'implémentation implémente
3. Remplacer les méthodes abstraites
4. Créer des objets de classe d'implémentation et appeler des méthodes


Caractéristiques des interfaces
1. N'a pas besoin d'être modifié par le résumé
2 .Une classe implémente une interface, qui peut être implémentée seule ou de plusieurs manières
3. Une interface peut hériter d'une interface, soit seule, soit de plusieurs manières
4. Les fonctions d'une interface et d'une classe parent peuvent être répétées, ce qui signifie qu'ils doivent avoir certaines fonctions.

Caractéristiques des membres des interfaces
Variables membres constantes statiques
Modificateur fixe public static final
Indépendamment de l'écriture ou non, ce modificateur reste inchangé

Méthode membre
Modificateur fixe public abstract
Qu'il soit écrit ou non, ce modificateur reste inchangé

Classe abstraite et différences dans les interfaces
1. Différences entre les membres
Classe abstraite :
Variables membres : peuvent être des variables ou des constantes
Constructeur : il existe un constructeur pour l'instanciation des sous-classes Utiliser
méthode membre : elle peut être abstrait ou non abstrait
interface :
variable membre : ne peut être qu'une constante
modificateur par défaut : public static final

méthode membre : ne peut être qu'abstraite
modificateur par défaut : public abstract

Recommandation : veuillez toujours donner le modificateur par défaut manuellement
2. La différence entre les classes et les interfaces
Classes et classes :
Relation d'héritage, un seul héritage , l'héritage multi-niveaux est possible

Classes et interfaces :
Relation d'implémentation, implémentation unique ou implémentations multiples sont possibles
Classe également Vous pouvez hériter d'une classe et implémenter plusieurs interfaces en même temps

Interface et interface :
Relation d'héritage, vous pouvez avoir un héritage unique ou un héritage multiple
3 Les concepts incarnés sont différents

Ce qui est défini dans les classes abstraites. sont des contenus communs dans un système d'héritage
Les interfaces sont un ensemble de fonctions, de fonctions supplémentaires d'un système et de règles exposées


Tout est utilisé Partout où la classe/interface parent fait référence, sa sous-classe/implémentation l'objet de classe peut être passé en

Polymorphisme
Le même objet est réfléchi à différents moments Différents états
Exemple : eau (eau, glace, eau vapeur)
cat (chat, animal)
Prérequis :
A : Il existe une relation d'héritage ou d'implémentation
B : Il existe une méthode Rewrite
C : Une référence à partir des points de la classe parent à l'objet de sous-classe
Caractéristiques de l'utilisation de membres dans le polymorphisme
Fu fz=new Zi();
Lorsqu'elles sont polymorphes, toutes les expressions sont la classe parent La forme d'expression
n'est que lorsqu'une méthode est appelée, la méthode réécrite par la sous-classe est exécutée
1. Variables membres
Compilez et voyez à gauche Exécutez et exécutez et voyez à gauche
2. Méthodes membres
Compilez et voyez à gauche. et cours. Regardez à droite

 1         class Fu{ 2             int num=4; 3             void show(){ 4                 system.out.println("showFu") 5             } 6  7         } 8         class Zi extends Fu{ 9 10             int num=5;11             void show(){12                 system.out.println("showZi");13             }14         }15         class T{16             public static void main(String args[]){17                 Fu f=new Zi();18                 system.out.println(f.num);19                 f.show();20             }21         }
Copier après la connexion

Transformation en polymorphisme
1. Transformation vers le haut
Attribuez la sous-classe. object to La référence de la classe parent (interface) est automatiquement saisie
int a=0; double b=a;
Fu fz=new Zi();
2. Downcast
vers le La référence de la classe parent (interface)) est forcée dans un objet de sous-classe
double b=10.0;
int a=(int)b;

Fu fz=new Zi();
Zi zi=(Zi )fz;
Remarque : Fu fu=new Fu() ne peut pas être converti vers le bas et signalera une exception de conversion de type ClassCastException

Avantages et inconvénients du polymorphisme
1. Avantages
Améliore la maintenabilité et l'évolutivité du programme
2. Inconvénients
Impossible d'appliquer le contenu spécifique à la sous-classe
Si vous souhaitez l'utiliser, vous devez soit downcast, soit recréer l'objet de sous-classe
Trois formes de polymorphisme
1. Nom de la variable de classe parent du polymorphisme de classe concret = nouvelle sous-classe ()
2. Nom de la variable de classe abstraite parent du polymorphisme de classe abstrait = nouvelle sous-classe ( )
3. Polymorphisme d'interface Nom de la variable d'interface = new Classe d'implémentation ()

instanceof password
Format : nom d'objet instanceof class name
Valeur de retour : true false
Fonction : Déterminer si l'objet spécifié est un objet créé par une classe donnée

Animal a1=new Cat();
Animal a2=new Dog();
method(a1)
public static void method(Animal a){

if(a instanceof Cat){
Downcast
Appeler la méthode spécifique au chat
}
}

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles sont les interfaces internes d'une carte mère d'ordinateur ? Introduction recommandée aux interfaces internes d'une carte mère d'ordinateur ? Quelles sont les interfaces internes d'une carte mère d'ordinateur ? Introduction recommandée aux interfaces internes d'une carte mère d'ordinateur ? Mar 12, 2024 pm 04:34 PM

Lorsque nous assemblons l'ordinateur, bien que le processus d'installation soit simple, nous rencontrons souvent des problèmes de câblage. Souvent, les utilisateurs branchent par erreur la ligne d'alimentation du radiateur du processeur au SYS_FAN. Bien que le ventilateur puisse tourner, il peut ne pas fonctionner lorsque le ventilateur fonctionne. L'ordinateur est allumé. Il y aura une erreur F1 "CPUFanError", qui empêchera également le refroidisseur du processeur d'ajuster intelligemment la vitesse. Partageons les connaissances communes sur les interfaces CPU_FAN, SYS_FAN, CHA_FAN et CPU_OPT sur la carte mère de l'ordinateur. Science populaire sur les interfaces CPU_FAN, SYS_FAN, CHA_FAN et CPU_OPT sur la carte mère de l'ordinateur 1. CPU_FANCPU_FAN est une interface dédiée pour le radiateur du processeur et fonctionne à 12 V.

Paradigmes de programmation et modèles de conception courants en langage Go Paradigmes de programmation et modèles de conception courants en langage Go Mar 04, 2024 pm 06:06 PM

En tant que langage de programmation moderne et efficace, le langage Go possède de riches paradigmes de programmation et des modèles de conception qui peuvent aider les développeurs à écrire du code maintenable de haute qualité. Cet article présentera les paradigmes de programmation et les modèles de conception courants dans le langage Go et fournira des exemples de code spécifiques. 1. Programmation orientée objet Dans le langage Go, vous pouvez utiliser des structures et des méthodes pour implémenter une programmation orientée objet. En définissant une structure et des méthodes de liaison à la structure, les fonctionnalités orientées objet d'encapsulation de données et de liaison de comportement peuvent être obtenues. packagemaini

Table de fonctions virtuelles C++ et implémentation polymorphe, comment éviter le gaspillage de mémoire Table de fonctions virtuelles C++ et implémentation polymorphe, comment éviter le gaspillage de mémoire May 31, 2024 pm 07:03 PM

Les classes de base virtuelles optimisent la surcharge de mémoire des tables virtuelles en permettant l'héritage de plusieurs classes de base sans créer de tables virtuelles supplémentaires. Dans le code optimisé, la classe de base de forme n'a plus de table de fonctions virtuelles et les classes cercle et rectangle partagent la même table de fonctions virtuelles, réduisant ainsi la consommation de mémoire.

Comment convertir le tableau de résultats d'une requête MySQL en objet ? Comment convertir le tableau de résultats d'une requête MySQL en objet ? Apr 29, 2024 pm 01:09 PM

Voici comment convertir un tableau de résultats de requête MySQL en objet : Créez un tableau d'objets vide. Parcourez le tableau résultant et créez un nouvel objet pour chaque ligne. Utilisez une boucle foreach pour attribuer les paires clé-valeur de chaque ligne aux propriétés correspondantes du nouvel objet. Ajoute un nouvel objet au tableau d'objets. Fermez la connexion à la base de données.

Introduction aux interfaces PHP et comment les définir Introduction aux interfaces PHP et comment les définir Mar 23, 2024 am 09:00 AM

Introduction à l'interface PHP et à sa définition. PHP est un langage de script open source largement utilisé dans le développement Web. Il est flexible, simple et puissant. En PHP, une interface est un outil qui définit des méthodes communes entre plusieurs classes, réalisant le polymorphisme et rendant le code plus flexible et réutilisable. Cet article présentera le concept des interfaces PHP et comment les définir, et fournira des exemples de code spécifiques pour démontrer leur utilisation. 1. Concept d'interface PHP L'interface joue un rôle important dans la programmation orientée objet, définissant l'application de classe

Solution à NotImplementedError() Solution à NotImplementedError() Mar 01, 2024 pm 03:10 PM

La raison de l'erreur est en python. La raison pour laquelle NotImplementedError() est lancée dans Tornado peut être due au fait qu'une méthode ou une interface abstraite n'est pas implémentée. Ces méthodes ou interfaces sont déclarées dans la classe parent mais non implémentées dans la classe enfant. Les sous-classes doivent implémenter ces méthodes ou interfaces pour fonctionner correctement. Comment résoudre ce problème consiste à implémenter la méthode abstraite ou l'interface déclarée par la classe parent dans la classe enfant. Si vous utilisez une classe pour hériter d'une autre classe et que vous voyez cette erreur, vous devez implémenter toutes les méthodes abstraites déclarées dans la classe parent dans la classe enfant. Si vous utilisez une interface et que vous voyez cette erreur, vous devez implémenter toutes les méthodes déclarées dans l'interface dans la classe qui implémente l'interface. Si vous n'êtes pas sûr de savoir lequel

Quelle est la différence entre les tableaux et les objets en PHP ? Quelle est la différence entre les tableaux et les objets en PHP ? Apr 29, 2024 pm 02:39 PM

En PHP, un tableau est une séquence ordonnée et les éléments sont accessibles par index ; un objet est une entité avec des propriétés et des méthodes, créée via le mot-clé new. L'accès au tableau se fait via l'index, l'accès aux objets se fait via les propriétés/méthodes. Les valeurs du tableau sont transmises et les références d'objet sont transmises.

Qu'est-ce que l'objet Request en PHP ? Qu'est-ce que l'objet Request en PHP ? Feb 27, 2024 pm 09:06 PM

L'objet Request en PHP est un objet utilisé pour gérer les requêtes HTTP envoyées par le client au serveur. Grâce à l'objet Request, nous pouvons obtenir les informations de demande du client, telles que la méthode de demande, les informations d'en-tête de demande, les paramètres de demande, etc., afin de traiter et de répondre à la demande. En PHP, vous pouvez utiliser des variables globales telles que $_REQUEST, $_GET, $_POST, etc. pour obtenir les informations demandées, mais ces variables ne sont pas des objets, mais des tableaux. Afin de traiter les informations demandées de manière plus flexible et plus pratique, vous pouvez

See all articles