Heim > Java > javaLernprogramm > Hauptteil

Ist die Eltern-Kind-Hierarchie wichtig für das Auslösen von Ausnahmen beim Überschreiben in Java?

WBOY
Freigeben: 2023-08-19 13:49:23
nach vorne
1279 Leute haben es durchsucht

Ist die Eltern-Kind-Hierarchie wichtig für das Auslösen von Ausnahmen beim Überschreiben in Java?

Wenn Sie versuchen, eine (überprüfte) Ausnahme zu behandeln, die von einer bestimmten Methode ausgelöst wird, müssen Sie sie mit der Klasse Exception oder der Superklasse, in der die Ausnahme aufgetreten ist, abfangen.

Ähnlich gilt, dass beim Überschreiben einer Methode einer Superklasse eine Ausnahme ausgelöst wird: −

  • Die Methode in der Unterklasse sollte dieselbe Ausnahme oder ihren Untertyp auslösen.

  • Methoden in Unterklassen sollten ihren Supertyp nicht verlassen.

  • Sie können überschreiben, ohne eine Ausnahme auszulösen.

Wenn Sie drei Klassen (Hierarchie) mit den Namen Demo, SuperTest und Super haben, die erben, wenn Demo und SuperTest eine Methode namens sample() haben.

Beispiel

Live-Demonstration

class Demo {
   public void sample() throws ArrayIndexOutOfBoundsException {
      System.out.println("sample() method of the Demo class");
   }
}
class SuperTest extends Demo {
   public void sample() throws IndexOutOfBoundsException {
      System.out.println("sample() method of the SuperTest class");
   }
}
public class Test extends SuperTest {
   public static void main(String args[]) {
      Demo obj = new SuperTest();
      try {
         obj.sample();
      }catch (ArrayIndexOutOfBoundsException ex) {
         System.out.println("Exception");
      }
   }
}
Nach dem Login kopieren

Ausgabe

sample() method of the SuperTest class
Nach dem Login kopieren

Wenn die Klasse, in der Sie die Ausnahme abfangen, nicht mit der ausgelösten Ausnahme übereinstimmt oder nicht die Superklasse der Ausnahme ist, erhalten Sie einen Fehler bei der Kompilierung.

Ebenso sollte beim Überschreiben einer Methode die ausgelöste Ausnahme dieselbe sein wie die Ausnahme, die von der überschriebenen Methode oder ihrer Oberklasse ausgelöst wird, da andernfalls ein Fehler bei der Kompilierung auftritt.

Beispiel

Demonstration

import java.io.IOException;
import java.io.EOFException;
class Demo {
   public void sample() throws IOException {
      System.out.println("sample() method of the Demo class");
   }
}
class SuperTest extends Demo {
   public void sample() throws EOFException {
      System.out.println("sample() method of the SuperTest class");
   }
}
public class Test extends SuperTest {
   public static void main(String args[]) {
      Demo obj = new SuperTest();
      try {
         obj.sample();
      }catch (EOFException ex){
         System.out.println("Exception");
      }
   }
}
Nach dem Login kopieren

Ausgabe

Test.java:12: error: sample() in SuperTest cannot override sample() in Demo
public void sample() throws IOException {
            ^
overridden method does not throw IOException
1 error

D:\>javac Test.java
Test.java:20: error: unreported exception IOException; must be caught or declared to be thrown
   obj.sample();
              ^
1 error
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonIst die Eltern-Kind-Hierarchie wichtig für das Auslösen von Ausnahmen beim Überschreiben in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage