Heim  >  Artikel  >  Java  >  Beispielanalyse der polymorphen Verwendung in Java

Beispielanalyse der polymorphen Verwendung in Java

高洛峰
高洛峰Original
2017-01-19 13:57:011310Durchsuche

Die Beispiele in diesem Artikel beschreiben die Verwendung von Polymorphismus in Java. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:

Polymorphismus ist das Kernmerkmal objektorientierter Programmiersprachen. Kapselung und Vererbung sind relativ einfach, daher werde ich hier nur eine kleine Anmerkung zum Polymorphismus machen. . .

1. Was ist Polymorphismus?

Polymorphismus bedeutet, dass ein Objekt mehrere Eigenschaften haben und unter bestimmten Umständen unterschiedliche Zustände aufweisen kann, um auf unterschiedliche Eigenschaften und Methoden zu reagieren. In Java bezieht sich die polymorphe Implementierung auf die Verwendung derselben Implementierungsschnittstelle zum Implementieren verschiedener Objektinstanzen.

Zum Beispiel definieren wir eine Parent-Klasse, definieren dann eine getName()-Methode, um eine Zeichenfolge zurückzugeben, definieren eine Member-Methode doSomething(Parent obj), deren formaler Parameter der Parent-Typ ist, und rufen obj.getName auf diese Methode (). Definieren Sie dann zwei Klassen A und B, die beide von der übergeordneten Klasse erben, und überschreiben Sie die Methode getName() in der Unterklasse. Erstellen Sie abschließend ein Objekt objP der Parent-Klasse in der Hauptmethode, rufen Sie die Methode objP.doSomething() auf und übergeben Sie ihr die Referenzen von Klasse A und Klasse B. Beobachten Sie die Ausgabe.

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; 
  } 
}

Es ist ersichtlich, dass die doSomething-Methode der übergeordneten Klasse polymorph die getName-Methode des von uns übergebenen Objekts aufruft und nicht die getName-Methode der übergeordneten Klasse selbst.

2. Schnittstelle in Java

Schnittstelle in Java ist eine Deklaration einer Reihe von Methoden. Eine Schnittstelle verfügt nur über die Eigenschaften von Methoden, nicht jedoch über die Implementierung von Methoden. Diese Methoden können von anderer Stelle über bestimmte Klassen implementiert werden. In Java wird das Schlüsselwort interface zum Deklarieren einer Schnittstelle verwendet.

Beispiel für die Verwendung einer Schnittstelle zur Implementierung von Polymorphismus:

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());
  }
}

Wie Sie sehen können, wird der Name der Klasse A, Klasse A, gedruckt.

PS: Wenn eine Klasse nicht alle Methoden im Interface implementiert, dann muss die Klasse als abstrakt deklariert werden. Eine abstrakte Klasse erlaubt keine Instanziierung von Objekten.

Ich hoffe, dass dieser Artikel für alle bei der Java-Programmierung hilfreich sein wird.

Weitere Artikel zur Analyse von Beispielen für die polymorphe Verwendung in Java finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn