Maison > Java > javaDidacticiel > le corps du texte

Orienté objet (interface, polymorphisme)

巴扎黑
Libérer: 2017-06-26 11:09:54
original
1058 Les gens l'ont consulté

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal