জাভাতে অ্যাবস্ট্রাক্ট ক্লাস এবং ইন্টারফেসের মধ্যে পার্থক্য কী?

এই নিবন্ধটি আপনাকে উদাহরণস্বরূপ প্রোগ্রামের সাহায্যে জাভাতে বিমূর্ত শ্রেণি এবং ইন্টারফেসের মধ্যে মূল পার্থক্য বুঝতে সহায়তা করবে।

অ্যাবস্ট্রাক্ট ক্লাস এবং ইন্টারফেস দুটি প্রধান বিল্ডিং ব্লকএর । যদিও উভয়ই মূলত বিমূর্তকরণের জন্য ব্যবহৃত হয় তবে এগুলি একে অপরের থেকে একেবারেই আলাদা এবং একে অপরকে পরিবর্তিতভাবে ব্যবহার করা যায় না। এই নিবন্ধে জাভাতে বিমূর্ত শ্রেণি এবং ইন্টারফেসের মধ্যে পার্থক্য কী তা নির্ধারণ করা যাক।



এই নিবন্ধে আলোচিত বিষয়গুলি নিম্নরূপ:



বিমূর্ত শ্রেণি এবং ইন্টারফেস মধ্যে পার্থক্য বুঝতে , আপনাকে একটি বিমূর্ত শ্রেণি কী এবং একটি ইন্টারফেস কী তা জানতে হবে। সুতরাং, সেগুলি কী তা নিয়ে আলোচনা করে শুরু করা যাক।

জাভাতে অ্যাবস্ট্রাক্ট ক্লাস কী?

যে কোনও প্রোগ্রামিং ভাষায়, বিমূর্ততা এর অর্থ জটিলতা হ্রাস করার জন্য দক্ষতা বৃদ্ধির জন্য কেবল প্রয়োজনীয় প্রয়োজনীয় বিবরণগুলিতে ফোকাস দেওয়ার জন্য ব্যবহারকারীর থেকে অপ্রাসঙ্গিক বিবরণ গোপন করা। জাভাতে, বিমূর্ততা ব্যবহার করে অর্জিত হয় বিমূর্ত ক্লাস । একটি বিমূর্ত শ্রেণি সাবক্লাসের সাধারণ বৈশিষ্ট্যগুলি ক্যাপচার করে এবং এতে কোনও বিমূর্ত পদ্ধতি থাকতে পারে বা নাও থাকতে পারে। এটি তাত্ক্ষণিকভাবে চালু করা যায় না তবে কেবল এটির সাবক্লাসগুলি একটি সুপারক্লাস হিসাবে ব্যবহার করা যেতে পারে। বিমূর্ত শ্রেণি প্রদর্শনের জন্য এখানে একটি উদাহরণ প্রোগ্রাম রয়েছে:



বিঃদ্রঃ: একটি বিমূর্ত পদ্ধতি , এমন একটি পদ্ধতি যা কার্যকরভাবে প্রয়োগ করা হয় না এবং যুক্ত হয়অসম্পূর্ণতা ক্লাস

প্যাকেজ মাইপ্যাকেজ // বিমূর্ত শ্রেণীর বিমূর্ত শ্রেণি প্রাণী {স্ট্রিং অ্যানিম্যাল নেম = '' অ্যানিম্যাল (স্ট্রিং নাম) {this.AnimalName = নাম} // অ-অ্যাবস্ট্রাক্ট পদ্ধতি ঘোষণা করুন // এটি ডিফল্ট বাস্তবায়ন পাবলিক অকার্যকর বেসিকআইএনফো (স্ট্রিং বিশদ) {সিস্টেম। আউট প্রিন্টলন (এটি.অ্যানিমালনেম + '' + বিশদ)} // বিমূর্ত পদ্ধতিগুলি যা এর উপক্লাস দ্বারা প্রয়োগ করা হবে (এস) বিমূর্ত পাবলিক শূন্য আবাস () বিমূর্ত পাবলিক শূন্যতা শ্বসন ()} শ্রেণি টেরেস্ট্রিয়াল অ্যানিমাল প্রসারিত {// কন্সট্রাক্টর টেরেস্ট্রিয়াল (স্ট্রিং নাম) {সুপার (নাম) public @ সার্বজনীন শূন্য আবাস (ওভাররাইড) (land জমি ছেড়ে দিন) O @ ওভাররাইড পাবলিক শূন্যতা শ্বসন ()। System.out.println ('শ্বাসকষ্ট) ফুসফুস বা শ্বাসনালী দিয়ে। ')}} ক্লাস অ্যাকোয়াটিক প্রানীকে প্রসারিত করে {// কনস্ট্রাক্টর অ্যাকোয়াটিক (স্ট্রিং নাম) {সুপার (নাম)} @ সরকারী জনশূন্য আবাসস্থল () {System.out.println (' এটি পানিতে ফেলে এবং ') } @ সার্বজনীন শূন্যতা শ্বসন () ওভাররাইড ()) d main (স্ট্রিং [] আরগস) {// টেরেস্ট্রিয়াল ক্লাসের অবজেক্ট তৈরি করা // এবং অ্যানিম্যাল ক্লাস রেফারেন্স ব্যবহার করা। এনিমেল অবজেক্ট 1 = নতুন টেরেস্ট্রিয়াল ('হিউম্যানস') অবজেক্ট 1. বেসিক ইনফো ('পার্থিব প্রাণী, তারা') অবজেক্ট 1.হবিট্যাট () অবজেক্ট 1.সিসারেশন () System.out.println ('') // বৃত্ত শ্রেণীর প্রাণীর অবজেক্ট তৈরি করা অবজেক্ট 2 = নতুন জলজ ('মৎস্য')

আউটপুট

মানুষ স্থলজগতের প্রাণী, তারা ফুসফুস বা শ্বাসনালির মাধ্যমে স্থল এবং শ্বাস-প্রশ্বাসে ছেড়ে যায়। মাছগুলি আকৌটিক প্রাণী, তারা এটি জলে ফেলে দেয় এবং গিলগুলি বা তাদের ত্বকের মাধ্যমে শ্বাস দেয়।

দ্য মৌলিক তথ্য () একটি পদ্ধতি যা দ্বারা ভাগ করা হয় টেরেস্ট্রিয়াল এবং জলজ ক্লাস থেকে প্রাণী শ্রেণি শুরু করা যায় না, আমরা এর অবজেক্ট তৈরি করছি টেরেস্ট্রিয়াল এবং জলজ প্রোগ্রামিং উদ্দেশ্যে ক্লাস। পরবর্তী, আমাদের ইন্টারফেস আছে।



জাভা ইন্টারফেস

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

প্যাকেজ মাইপ্যাকেজ ইন্টারফেস প্রাণী {// বিমূর্ত পদ্ধতি শূন্য আবাস () শূন্য শ্বসন () Ter শ্রেণি টেরেস্ট্রিয়াল প্রাণী প্রয়োগ করে ring স্ট্রিং অ্যানিম্যাল নেম = '' // কনস্ট্রাক্টর টেরেস্ট্রিয়াল (স্ট্রিং নাম) {এটি.অনিমালনাম = নাম} @ সরকারী সার্বিক শূন্য আবাস () । System.out.println (এটি.অ্যানিমালনেম + 'জমি ছাড়ুন এবং')} @ সার্বজনীন শূন্যতার শ্বাস-প্রশ্বাস () {System.out.println ('ফুসফুস বা শ্বাসনালীর মাধ্যমে শ্বাসকষ্ট।')}} ক্লাস অ্যাকোয়াটিকা প্রাণী প্রয়োগ করে {স্ট্রিং অ্যানিম্যালনাম = '' // কনস্ট্রাক্টর অ্যাকোয়াটিকা (স্ট্রিং নাম) {this.AnimalName = নাম} @ ওভাররাইড পাবলিক অকার্যকর আবাস ()) System.out.println (এটি.অনিমালনাম + 'পানিতে ছেড়ে দিন')} @ সরকারী সার্বজনীন শ্বাস প্রশ্বাস ()। System.out.println ('গিলস বা তাদের ত্বকের মাধ্যমে শ্বাসকষ্ট।')}} শ্রেণীর জাভাআইন্টারফেসডেমো {পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং [] আরগস) {// টেরেস্ট্রিয়াল ক্লাসের অবজেক্ট তৈরি করা // এবং প্রাণী শ্রেণীর রেফারেন্স ব্যবহার করে । প্রাণীর অবজেক্ট 1 = নতুন টেরেস্ট্রিয়াল ('হিউম্যানস') অবজেক্ট 1.হবিট্যাট () অবজেক্ট 1. অ্যাসেসরেশন () সিস্টেম.আউট.প্রিন্টলন ('') // বৃত্ত শ্রেণীর অবজেক্টস অ্যানিমেলজ অবজেক্ট 2 = নতুন অ্যাকোয়াটিকা ('ফিশ') অবজেক্ট 2.হবিট্যাট () অবজেক্ট 2.সিরশন ()}

আউটপুট

মানুষ ফুসফুস বা শ্বাসনালী দিয়ে জমি এবং শ্বাস প্রশ্বাস ছেড়ে দেয়। মাছগুলি পানিতে ছেড়ে যায় এবং গিলগুলি বা তাদের ত্বকের মধ্য দিয়ে শ্বাস নেয়।

আপনার মধ্যে যদি কোনও সাধারণ কোড না থাকে ক্লাস , তারপরে আপনি ইন্টারফেসের জন্য যেতে পারেন। কোনও ইন্টারফেসটি কোনও শ্রেণীর নীলনকশানের মতো, কারণ এতে কোনও অ-বিমূর্ত পদ্ধতি নেই।

স্ট্রিং জাভাতে পরিবর্তনীয় বা পরিবর্তনযোগ্য

উপরের সামগ্রীটি থেকে আপনি সম্ভবত বিমূর্ত শ্রেণি এবং ইন্টারফেসের মধ্যে মূল পার্থক্যটি লক্ষ্য করেছেন noticed । যা, বিমূর্ত শ্রেণীর বিপরীতে, একটি ইন্টারফেস পূর্ণ সরবরাহ করে বিমূর্ততা জাভাতে এখন এগিয়ে আসা যাক এবং অন্যান্য পার্থক্য তালিকাভুক্ত করা যাক।

বিমূর্ত শ্রেণি বনাম ইন্টারফেস

নীচের সারণীতে বিমূর্ত শ্রেণি এবং ইন্টারফেসের মধ্যে মূল পার্থক্যগুলি তালিকাভুক্ত করা হয়েছে।

প্যারামিটার বিমূর্ত শ্রেণি ইন্টারফেস

ডিফল্ট পদ্ধতি বাস্তবায়ন

এটিতে ডিফল্ট পদ্ধতি বাস্তবায়ন থাকতে পারে

ইন্টারফেসগুলি বিশুদ্ধ বিমূর্ততা সরবরাহ করে এবং এর বাস্তবায়ন মোটেও হতে পারে না

পরিবর্তনশীল

এতে অ-চূড়ান্ত ভেরিয়েবল থাকতে পারে।

একটি ইন্টারফেসে ঘোষিত ভেরিয়েবলগুলি ডিফল্টরূপে চূড়ান্ত হয়

একটি উদাহরণ পরিবর্তনশীল কি

কীওয়ার্ড ব্যবহৃত হয়েছে

একটি বিমূর্ত শ্রেণীর শব্দটি 'প্রসারিত' ব্যবহার করে বাড়ানো যেতে পারে

ইন্টারফেসটি মূলশব্দের উপাদানগুলি ব্যবহার করে প্রয়োগ করা উচিত

অ্যাক্সেস মোডিফায়ার্স

করতে পারাসর্বজনীন, সুরক্ষিত, ব্যক্তিগত এবং ডিফল্ট সংশোধক রয়েছে

ইন্টারফেসের পদ্ধতিগুলি ডিফল্টরূপে সর্বজনীন। আপনি এটির সাথে অন্য কোনও অ্যাক্সেস সংশোধক ব্যবহার করতে পারবেন না

বাস্তবায়নের গতি

এটি ইন্টারফেসের চেয়ে দ্রুত

একটি ইন্টারফেস কিছুটা ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে বাড়তি থাকে extra

নরমাল ক্লাস

এটি কেবলমাত্র একটি বিমূর্ত শ্রেণি প্রসারিত করতে পারে

সি বনাম সি ++ বনাম জাভা

একাধিক ইন্টারফেস বাস্তবায়ন করতে পারে

নির্মাতারা

একটি বিমূর্ত শ্রেণীর নির্মাণকারী থাকতে পারে

একটি ইন্টারফেসে কনস্ট্রাক্টর থাকতে পারে না

একাধিক উত্তরাধিকার

একটি বিমূর্ত শ্রেণি অন্য শ্রেণি প্রসারিত করতে পারে এবং একাধিক জাভা ইন্টারফেস প্রয়োগ করতে পারে

ইন্টারফেসটি কেবল অন্য জাভা ইন্টারফেসকে প্রসারিত করতে পারে

ঠিক আছে, এখন আপনি জাভাতে বিমূর্ত শ্রেণি এবং ইন্টারফেসের মধ্যে মূল পার্থক্য। তবে, এই দুজনের মধ্যে কোনটি কখন ব্যবহার করবেন তা আপনি কীভাবে সিদ্ধান্ত নেবেন?

অ্যাবস্ট্রাক্ট ক্লাস এবং ইন্টারফেস কখন ব্যবহার করবেন?

নিম্নলিখিত ক্ষেত্রে বিমূর্ত ক্লাস ব্যবহার বিবেচনা করুন:

  • আপনার যদি কিছু সম্পর্কিত ক্লাস থাকে যা ভাগ করে নেওয়া দরকার কোড একই লাইন
  • আপনি যখন সংজ্ঞা দিতে চান অ স্থির বা চূড়ান্ত নয় এমন ক্ষেত্র
  • যখন আছেপদ্ধতি বা ক্ষেত্রবা প্রয়োজন অ্যাক্সেস মডিফায়ারগুলি জনসাধারণ ছাড়া অন্য (যেমন সুরক্ষিত এবং ব্যক্তিগত)

নিম্নলিখিত ক্ষেত্রে ইন্টারফেস ব্যবহার বিবেচনা করুন:

  • আপনি যখন অর্জন করতে চান খাঁটি বিমূর্ততা
  • আপনি যদি চাকরী করতে চান একাধিক অর্থাৎ,একাধিক ইন্টারফেস প্রয়োগ করুন
  • আপনি যখন কোনও নির্দিষ্ট ডেটা ধরণের আচরণ নির্দিষ্ট করতে চান তবে কে তার আচরণটি প্রয়োগ করে তা নিয়ে উদ্বিগ্ন নন।

এটি আমাদের নিবন্ধের শেষে নিয়ে আসে। আমি সাক্ষাত্কারে সবচেয়ে ঘন ঘন জিজ্ঞাসিত জাভা প্রশ্নগুলির মধ্যে একটি আবরণ করেছি, যা জাভাতে বিমূর্ত শ্রেণি এবং ইন্টারফেসের মধ্যে পার্থক্য।

আপনি যথাসম্ভব অনুশীলন করুন এবং আপনার অভিজ্ঞতাটি ফিরিয়ে দিন তা নিশ্চিত করুন।

দেখুন এডুরেকা, বিশ্বস্ত জুড়ে 250,000 এরও বেশি সন্তুষ্ট শিক্ষার্থীর নেটওয়ার্ক সহ একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা by আমরা আপনার যাতায়াতের প্রতিটি পদক্ষেপে আপনাকে সহায়তা করতে এখানে এই জাভা সাক্ষাত্কারের প্রশ্নগুলির পাশাপাশি হয়ে উঠার জন্য আমরা একটি পাঠ্যক্রম নিয়ে এসেছি যা জাভা ডেভেলপার হতে চান এমন শিক্ষার্থী এবং পেশাদারদের জন্য তৈরি করা হয়েছে।

আমাদের জন্য একটি প্রশ্ন আছে? এই ‘জাভা মানচিত্র ইন্টারফেস’ এর মন্তব্য বিভাগে এটি উল্লেখ করুন নিবন্ধ এবং যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।