কম্পিউটার

জাভাতে ওভাররাইড করার সময় কি থ্রোতে পিতামাতার শিশু শ্রেণিবিন্যাস গুরুত্বপূর্ণ?


আপনি যখন একটি নির্দিষ্ট পদ্ধতি দ্বারা নিক্ষিপ্ত একটি ব্যতিক্রম (চেক করা) পরিচালনা করার চেষ্টা করেন, তখন আপনাকে ব্যতিক্রম ব্যবহার করে এটি ধরতে হবে ব্যতিক্রমের ক্লাস বা সুপার ক্লাস ঘটেছে।

একইভাবে সুপার ক্লাসের পদ্ধতিকে ওভাররাইড করার সময়, যদি এটি একটি ব্যতিক্রম −

নিক্ষেপ করে
  • সাব-ক্লাসের পদ্ধতিটি একই ব্যতিক্রম বা এর সাব টাইপকে নিক্ষেপ করা উচিত।

  • সাব-ক্লাসের পদ্ধতিটি তার সুপার টাইপ নিক্ষেপ করা উচিত নয়।

  • আপনি কোনো ব্যতিক্রম ছাড়াই এটিকে ওভাররাইড করতে পারেন৷

যখন আপনার কাছে ডেমো, সুপারটেস্ট এবং সুপার ইন (হায়ারার্কিক্যাল) উত্তরাধিকার নামে তিনটি ক্লাস থাকে, যদি ডেমো এবং সুপারটেস্টের নমুনা() নামে একটি পদ্ধতি থাকে .

উদাহরণ

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

আউটপুট

সুপারটেস্ট ক্লাসের
sample() method of the SuperTest class

আপনি যে ক্লাসের সাথে একটি ব্যতিক্রম ধরছেন সেটি যদি একই না হয় বা, ব্যতিক্রম বা, উত্থাপিত ব্যতিক্রমের সুপার ক্লাস, আপনি একটি কম্পাইল টাইম ত্রুটি পাবেন৷

একইভাবে, একটি পদ্ধতিকে ওভাররাইড করার সময় থ্রো করা ব্যতিক্রমটি একই হওয়া উচিত বা, ওভাররাইড করা পদ্ধতি দ্বারা নিক্ষিপ্ত ব্যতিক্রমের সুপার ক্লাস অন্যথায় একটি কম্পাইল টাইম ত্রুটি ঘটে।

উদাহরণ

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

আউটপুট

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

  1. জাভাতে ইন্টারফেস

  2. জাভাতে বিমূর্ত ক্লাস

  3. জাভাতে ফাইনাল ক্লাস

  4. জাভাতে সুপার কীওয়ার্ড