Maison  >  Article  >  Java  >  Exemple d'analyse de l'utilisation polymorphe en Java

Exemple d'analyse de l'utilisation polymorphe en Java

高洛峰
高洛峰original
2017-01-19 13:57:011349parcourir

Les exemples de cet article décrivent l'utilisation du polymorphisme en Java. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

Le polymorphisme est la caractéristique essentielle des langages de programmation orientés objet. L'encapsulation et l'héritage sont relativement simples, je ne ferai donc ici qu'une petite note sur le polymorphisme. . .

1. Qu'est-ce que le polymorphisme ?

Le polymorphisme signifie qu'un objet peut avoir plusieurs caractéristiques et peut montrer différents états dans des circonstances spécifiques pour répondre à différentes propriétés et méthodes. En Java, l'implémentation polymorphe fait référence à l'utilisation de la même interface d'implémentation pour implémenter différentes instances d'objet.

Par exemple, nous définissons une classe Parent, puis définissons une méthode getName() pour renvoyer une chaîne, définissons une méthode membre doSomething(Parent obj) dont le paramètre formel est le type Parent et appelons obj.getName dans cette méthode (). Définissez ensuite deux classes A et B, qui héritent toutes deux de la classe Parent, et remplacez la méthode getName() dans la sous-classe. Enfin, créez un objet objP de la classe Parent dans la méthode main, appelez la méthode objP.doSomething() et passez-lui les références de classe A et de classe B. Observez la sortie.

class Parent 
{ 
  private String name = "parent"; 
  public String getName() 
  { 
    return this.name; 
  } 
  public void doSomething(Parent obj) 
  { 
    //输出类名 
    System.out.println(obj.getName()); 
  } 
  public static void main(String[] args) 
  { 
    Parent objP = new Parent(); 
    objP.doSomething(new A());
 // 传递A的引用,则调用的是A类的getName方法
    objP.doSomething(new B());
 // 传递B的引用,则调用的是B类的getName方法
  } 
} 
class A extends Parent 
{ 
  private String name = "class A"; 
  //@重写getName()方法 
  public String getName() 
  { 
    return this.name; 
  } 
} 
class B extends Parent 
{ 
  private String name = "class B"; 
  //@重写getName()方法 
  public String getName() 
  { 
    return this.name; 
  } 
}

On peut voir que la méthode doSomething de la classe parent appelle de manière polymorphe la méthode getName de l'objet que nous avons passé, plutôt que la méthode getName de la classe Parent elle-même.

2. Interface en Java

L'interface en Java est une déclaration d'une série de méthodes. Une interface n’a que les caractéristiques des méthodes, mais pas l’implémentation des méthodes. Ces méthodes peuvent être implémentées ailleurs via des classes spécifiques. En Java, le mot clé interface est utilisé pour déclarer une interface.

Exemple d'utilisation de l'interface pour implémenter le polymorphisme :

interface Name
{
  //只声明,不实现
  public String getName();
}
class A implements Name
{
  private String name = "class A";
  //实现getName方法
  public String getName()
  {
    return name;
  }
}
class B implements Name
{
  private String name = "class B";
  //实现getName方法
  public String getName()
  {
    return name;
  }
  public static void main(String[] args)
  {
    Name obj = new A();
    System.out.println(obj.getName());
  }
}

Comme vous pouvez le voir, le nom de la classe A, classe A, est imprimé.

PS : Si une classe n'implémente pas toutes les méthodes de l'interface, alors la classe doit être déclarée abstraite. Une classe abstraite ne permet pas l'instanciation d'objets.

J'espère que cet article sera utile à la programmation Java de chacun.

Pour plus d'articles liés à l'analyse d'exemples d'utilisation polymorphe en Java, veuillez faire attention au site Web PHP 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