আমি কি ইন্টারফেস পদ্ধতিগুলি বিমূর্ত পদ্ধতি হিসাবে বিবেচনা করতে পারি?


15

আমি সে সম্পর্কে ভাবছিলাম, এবং আমার কিছু সন্দেহ ছিল।

যখন আমি একটি ইন্টারফেস ঘোষণা করি, উদাহরণস্বরূপ:

public interface MyInterface
{
   public void method1();
   public void method2();
}

এই ইন্টারফেস পদ্ধতি বিমূর্ত হিসাবে বিবেচনা করা যেতে পারে? আমার অর্থ হ'ল একটি বিমূর্ত পদ্ধতির ধারণাটি হ'ল:

একটি বিমূর্ত পদ্ধতি হল এমন একটি পদ্ধতি যা ঘোষিত হয় তবে এতে কোনও প্রয়োগ হয় না।

সুতরাং, এই পদ্ধতিগুলি বিমূর্ত হিসাবে বিবেচনা করা যেতে পারে? এগুলি "খাঁটি" বিমূর্ত পদ্ধতি নয় কারণ আমি abstractশব্দটি ব্যবহার করছি না , তবে ধারণাগতভাবে দেখে মনে হচ্ছে এটি রয়েছে are

এটা সম্পর্কে তুমি আমাকে কি বলতে পার?

ধন্যবাদ।


সম্ভবত এসও
বিলি.বব

5
@ বিলি.বব - আমি মনে করি এটি স্ট্যাক ওভারফ্লোর জন্য খুব বিমূর্ত। এখানে একটি নির্দিষ্ট কোডিংয়ের সমস্যা নেই।
ক্রিসএফ

এটি কি জাভা কোড?
অ্যান্ড্রেস এফ।

না এইটা না. এটা ঠিক একটি উদাহরণ। প্রশ্নটি কোনও প্রোগ্রামিং ভাষার উপর দৃষ্টি নিবদ্ধ করে না।
rogcg

উত্তর:


14

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

একটি ইন্টারফেসের জন্য, যেহেতু কোনও বাস্তবায়ন নেই সেগুলি তাদের উদ্দেশ্যে কার্যকর: একটি চুক্তি। আপনি যদি ইন্টারফেস প্রয়োগ করেন তবে আপনাকে অবশ্যই  ইন্টারফেসে পদ্ধতিগুলি প্রয়োগ করতে হবে

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

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


বিমূর্ত শ্রেণীর উত্তরাধিকার এবং এক বা একাধিক ইন্টারফেসের প্রয়োগের মধ্যে পার্থক্যটি একত্রিত করার জন্য +1।

ডায়মন্ড সমস্যা একটি দুর্দান্ত প্যারাডক্স।
rogcg

1
আমি 'ইন্টারফেসটি "বিশুদ্ধভাবে" বিমূর্ত শ্রেণীর "অংশের মতোই অসম্মতি জানায়। এগুলি 2 টি ভিন্ন ধরণের ওও 'বিল্ডিং ব্লক', তাই এগুলি আসলে মোটেও সমান নয়। তারা কিছু সাধারণ বৈশিষ্ট্য ভাগ করে, তবে প্রকৃতিতে এগুলি বিভিন্ন ধরণের, উদাহরণস্বরূপ পুরুষ এবং মহিলার মতো :)
NoChance

5
@ আম্মান্দ কেরেম আমি 'ইন্টারফেসটি "বিশুদ্ধভাবে" বিমূর্ত শ্রেণির অংশের মতো "সাথে একমত নই। এজন্যই আমি এটি লিখেছিলাম :-)। আপনার মতবিরোধের কোনও ভাল কারণ থাকলে দয়া করে পোস্ট করুন, আইডি শুনতে পছন্দ করুন
কোডার


11

আমি এখানে একটি দরকারী উত্তর খুঁজে পেয়েছি: http://download.oracle.com/javase/tutorial/java/IandI/abstract.html

একটি ইন্টারফেসের সমস্ত পদ্ধতিই সুস্পষ্টভাবে বিমূর্ত হয়, সুতরাং বিমূর্ত সংশোধকটি ইন্টারফেসের পদ্ধতিগুলির সাথে ব্যবহৃত হয় না (এটি হতে পারে - এটি কেবল প্রয়োজনীয় নয়)।


1
এছাড়াও মনে রাখবেন একটি বিমূর্ত বর্গ প্রসারিত এক অন্য অবজেক্ট। ইন্টারফেসের একটি সুপারক্লাসের কোনও ধারণা নেই।

2
এছাড়াও নোট করুন যে আপনি একাধিক ইন্টারফেস বাস্তবায়ন করতে পারেন তবে আপনি কেবল এক শ্রেণীর কাছ থেকে উত্তরাধিকারী হতে পারেন, বিমূর্ত বা না পারেন।
নাল ইউজারএক্সসেপশন

@ থরবজর্নআরভানএন্ডারসন: একটি ইন্টারফেস এক বা একাধিক ইন্টারফেস প্রসারিত করতে পারে। এটি সুপার ক্লাসের মতো জিনিস নয়, তবে এটি উত্তরাধিকারের স্তর।
আনহোলিস্যাম্পলার

আপনি একাধিক ইন্টারফেস প্রয়োগ করতে পারেন। একাধিক উত্তরাধিকারের ধারণাটির মতো দেখতে, তবে ঠিক নয়।
rogcg

@ অনহোলিস্যাম্পলার, যা একটি সুপার ক্লাস নয় - যেমনটি আমি বলেছি।

4

সারাংশ শ্রেণীর করতে বিমূর্ত পদ্ধতি আছে।

ইন্টারফেসে কেবল বিমূর্ত পদ্ধতি থাকতে পারে।

method1()এবং method2()আপনার উদাহরণে বিমূর্ত পদ্ধতি রয়েছে।


-1

এখানে পার্থক্যটি হ'ল বিমূর্ত শ্রেণিতে প্রয়োগের বিশদ থাকতে পারে, যদিও নিজেরাই তা ইনস্ট্যান্ট করা যায় না cannot যদিও একটি ইন্টারফেস কেবল শ্রেণীর জন্য একটি টেম্পলেট


8
বিমূর্ত পদ্ধতিতে প্রয়োগের বিশদ থাকতে পারে না। বিমূর্ত ক্লাস করতে পারেন।
ম্যাট এইচ

আমি একটি পদ্ধতি এবং শ্রেণীর মধ্যে পার্থক্য জানি - তবে আপনি যে বিন্দুটি তৈরি করছেন তা আমি বুঝতে পারি না?
বিলি.বব

আপনার উত্তরে বলা হয়েছে যে বিমূর্ত পদ্ধতিতে প্রয়োগের বিশদ থাকতে পারে - তারা পারে না। শুধু টাইপো?
ম্যাট এইচ

1
আমি টাইপ ঠিক করলাম।
মার্টিজন ভার্গবার্গ

1
@ বিলি.বব এই প্রশ্নটি যদিও বিমূর্ত পদ্ধতি সম্পর্কে।
SoylentGray

-2

সুতরাং একটি সাবক্লাসে, উত্তরাধিকার সূত্রে প্রাপ্ত বিমূর্ত পদ্ধতি আবার প্রয়োগ ছাড়াই বিমূর্ত হতে পারে, যখন কোনও শ্রেণি ইন্টারফেস প্রয়োগ করে তবে তার পদ্ধতিটি অবশ্যই প্রয়োগ করা উচিত।


-3

ইন্টারফেস ক্লাসে বিমূর্ত পদ্ধতি নেই। তাদের কোনও পদ্ধতি নেই। তাদের কেবলমাত্র পদ্ধতিগুলির একটি তালিকা রয়েছে যা অন্য শ্রেণিকে ইন্টারফেসের সাথে মানিয়ে নিতে সক্ষম করতে হবে। আপনার উদাহরণে, কোনও ক্লাসে এই পদ্ধতিগুলি যুক্ত না করা পর্যন্ত কোনও পদ্ধতি পদ্ধতি 1 নেই এবং কোনও পদ্ধতি পদ্ধতি 2 নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.