কম্পিউটার

কেন একটি জাভা ক্লাস বিমূর্ত এবং চূড়ান্ত উভয় হতে পারে না?


বিমূর্ত শ্রেণী

যে শ্রেণীতে 0 বা ততোধিক বিমূর্ত পদ্ধতি থাকে তাকে বিমূর্ত শ্রেণী বলা হয়। যদি এটিতে অন্তত একটি বিমূর্ত পদ্ধতি থাকে, তবে এটিকে বিমূর্ত ঘোষণা করা আবশ্যক৷

আপনি যদি একটি বিমূর্ত শ্রেণীতে কংক্রিট পদ্ধতি ব্যবহার করতে চান তবে আপনাকে ক্লাসটি উত্তরাধিকার সূত্রে পেতে হবে, বিমূর্ত পদ্ধতির বাস্তবায়ন প্রদান করতে হবে (যদি থাকে) এবং তারপরে, আপনি সাবক্লাস অবজেক্ট ব্যবহার করে আপনি প্রয়োজনীয় পদ্ধতিগুলি ব্যবহার করতে পারেন৷

উদাহরণ

নিম্নলিখিত জাভা উদাহরণে, বিমূর্ত ক্লাস MyClass নাম প্রদর্শন সহ একটি কংক্রিট পদ্ধতি রয়েছে।

অন্য একটি ক্লাস (AbstractClassExample) থেকে আমরা MyClass ক্লাসের উত্তরাধিকারী হচ্ছি এবং সাবক্লাস অবজেক্ট ব্যবহার করে এর কংক্রিট মেথড ডিসপ্লে চালু করছি।

বিমূর্ত শ্রেণী MyClass { সর্বজনীন অকার্যকর প্রদর্শন() { System.out.println("এটি বিমূর্ত শ্রেণীর একটি পদ্ধতি"); }}পাবলিক ক্লাস অ্যাবস্ট্রাক্টক্লাস উদাহরণ মাইক্লাসকে প্রসারিত করে { পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং আর্গস[]) { নতুন অ্যাবস্ট্র্যাক্টক্লাসএক্সাম্পল().ডিসপ্লে(); }}

আউটপুট

এটি বিমূর্ত শ্রেণীর একটি পদ্ধতি

ফাইনাল ক্লাস

যদি আপনি একটি ক্লাস ফাইনাল ঘোষণা করেন তবে আপনি যদি একটি চূড়ান্ত ক্লাস বাড়ানোর চেষ্টা করেন তবে আপনি প্রসারিত করতে পারবেন না, একটি কম্পাইল টাইম ত্রুটি তৈরি হবে যে "ফাইনাল সুপারক্লাস থেকে উত্তরাধিকারী হতে পারে না"

উদাহরণ

নিম্নলিখিত জাভা প্রোগ্রামে, আমাদের সুপারক্লাস নামের একটি চূড়ান্ত ক্লাস আছে এবং আমরা এটি অন্য ক্লাস (সাবক্লাস) থেকে অন্তর্নিহিত করার চেষ্টা করছি।

<প্রি> ফাইনাল ক্লাস সুপারক্লাস { পাবলিক ভ্যাড ডিসপ্লে() { System.out.println("এটি সুপারক্লাসের একটি পদ্ধতি"); }}

কম্পাইল সময় ত্রুটি

কম্পাইল করার সময়, এই প্রোগ্রামটি নীচে দেখানো হিসাবে একটি সংকলন ত্রুটি তৈরি করে -

SubClass.java:7:ত্রুটি:চূড়ান্ত SuperClasspublic ক্লাস থেকে উত্তরাধিকারী হতে পারে না SubClass SuperClass প্রসারিত করে{ ^1 ত্রুটি

বিমূর্ত এবং চূড়ান্ত উভয়ই

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

উদাহরণ

সর্বজনীন চূড়ান্ত বিমূর্ত শ্রেণীর উদাহরণ { public void sample() { }}

কম্পাইল সময় ত্রুটি

Example.java:1:ত্রুটি:সংশোধনকারীদের অবৈধ সমন্বয়:বিমূর্ত এবং চূড়ান্ত সর্বজনীন চূড়ান্ত বিমূর্ত শ্রেণীর উদাহরণ { ^1 ত্রুটি

  1. ইন্টারফেস ভেরিয়েবলগুলি জাভাতে ডিফল্টরূপে স্থির এবং চূড়ান্ত, কেন?

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

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

  4. জাভাতে চূড়ান্ত কীওয়ার্ড