Maison  >  Article  >  Java  >  Comment comprendre le polymorphisme en Java

Comment comprendre le polymorphisme en Java

(*-*)浩
(*-*)浩original
2019-05-21 19:53:4255920parcourir

Comment comprendre le polymorphisme en Java

Polymorphisme  : Le polymorphisme permet à des objets de différents sous-types de répondre différemment au même message. En termes simples, la même méthode est appelée avec la même référence d'objet mais des choses différentes sont effectuées. Le polymorphisme est divisé en polymorphisme au moment de la compilation et en polymorphisme au moment de l'exécution.

Si les méthodes d'un objet sont considérées comme les services fournis par l'objet au monde extérieur, alors le polymorphisme d'exécution peut être expliqué comme suit : lorsque le système A accède aux services fournis par le système B, le système B a plusieurs méthodes méthode de fourniture de services, mais tout est transparent pour le système A (tout comme un rasoir électrique est le système A et son système d'alimentation est le système B. Le système B peut être alimenté par des piles ou du courant alternatif, ou même par l'énergie solaire. A Le système n'appellera la méthode d'alimentation électrique que via des objets de classe B, mais il ne sait pas quelle est l'implémentation sous-jacente du système d'alimentation électrique et comment il obtient l'énergie).

La surcharge de méthode (surcharge) implémente le polymorphisme au moment de la compilation (également connu sous le nom de liaison frontale), tandis que la substitution de méthode (override) implémente le polymorphisme à l'exécution (également connu sous le nom de post-liaison).

Le polymorphisme d'exécution est l'essence même de l'orientation objet. Pour obtenir le polymorphisme, deux choses doivent être faites :

  • Réécriture de méthode (la sous-classe). hérite de la classe parent et remplace les méthodes existantes ou abstraites dans la classe parent

  • Modélisation d'objet (utilisez la référence de type parent pour faire référence à l'objet sous-type, de sorte que la même référence appelle The la même méthode affichera des comportements différents en fonction de l'objet de sous-classe).

java中的引用变量有两个类型:一个编译时类型,一个是运行时类型。编译时类型由声明该变量使用的类型决定,运行时类型由实际赋给
该变量的对象决定。如果编译时类型与运行时类型不一致,就可能出现所谓的多态。——疯狂java讲义

Des exemples d'utilisation du polymorphisme d'exécution sont les suivants :

public class PolyTest5
{
    public void run(Car car)//这样利用公共的父类就屏蔽了子类之间的差异性,可以应对所有的车.
    {
        car.run();//只要子类继承了car都可以作为参数传入方法中.如果没有多态,就要有对应每个类的方法.非常的麻烦.
    }

    public static void main(String[] args)
    {

        PolyTest5 test = new PolyTest5();

        Car car = new BMW();

        test.run(car);

        QQ qq = new QQ();

        test.run(qq);//向上类型转换.


    }
}

class Car
{
    public void run()
    {
        System.out.println("car is running");
    }
}

class BMW extends Car
{
    public void run()
    {
        System.out.println("BMW is running");
    }
}

class QQ extends Car
{
    public void run()
    {
        System.out.println("QQ is running");
    }
}

Trois éléments du polymorphisme : 1. 2. Réécrivez 3. La référence de classe parent pointe vers l'objet de classe enfant.

Recommandations d'apprentissage associées : Tutoriel de base Java

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:
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