Java

JAVA – Abstract Class

abstract class

What is Abstraction? এবস্ট্রাকশন কি?

OOP তে এবসট্রাকশন হচ্ছে কোডের ইমপ্লিমেন্টেশনের ডিটেইলস (বাস্তবায়ন) লুকানোর একটি প্রক্রিয়া। শুধু ক্লাসের কাজটুকু ব্যবহারকারীকে দেওয়া হয়ে থাকে।

অন্য কথায়, ব্যবহারি শুধু অবজেক্ট কি কাজ করে বা কি কাজ করতে পারে তাই শুধু জানবে, কিভাবে কাজ করে তা জানবেনা।

উদাহরণঃ

আপনি একটি ইমেইল এবস্ট্রাক্ট ক্লাস ব্যবহার করছেন, এবং সেখান থেকে আপনি sendMessage() নামের মেথোড ব্যবহার করলেন। আপনি আপনার মেসেজের স্ট্রিং টি দিলেন আর তা মেসেজ আপনার কাঙ্ক্ষিত ইমেইলে মেসেজটি পাঠিয়ে দিল। এই মেসেজ যাওয়ার সম্পূর্ণ প্রকিয়াটি ক্লাস ব্যবহারকারীর জানা প্রয়োজন নেই। সে শুধু মেসেজ পাঠাবে এটির জন্যেই সে ক্লাসটি ব্যবহার করবে।

 

*** জাভাতে এবস্ট্রাক্ট ক্লাস (Abstract Class) এবং ইন্টারফেস (Interface) ব্যবহার করে এবস্ট্রাকশন অর্জিত হয়।

 

What is Abstract Class? এবস্ট্রাক্ট ক্লাস কি?

যে ক্লাসটিতে abstract কিওয়ার্ড থাকে, তাকেই এবস্ট্রাক্ট ক্লাস বলে থাকে।

এবস্ট্রাক্ট ক্লাসে গঠনে_____,

  • ক্লাসে এবস্ট্রাক্ট মেথোড থাকতেও পারে নাও থাকতে পারে।
  • কোন ক্লাসে এবস্ট্রাক্ট মেথোড (শুধু মেথোড, বডিতে কোন স্টেইটমেন্ট নেই) থাকলেই সেই ক্লাস্টিও এবস্ট্রাক্ট হতে হবে।
  • এবস্ট্রাক্ট ক্লাস কে ইন্সট্যান্টশিয়েট করা যায় না।
  • এবস্ট্রাক্ট ক্লাস ব্যবহার করার জন্যে অন্য ক্লাসের দ্বারা এক্সেন্ট করা প্রয়োজন এবং সেই ক্লাস দ্বারা এবস্ট্রাক্ট মেথোড গুলো ইমপ্লিমেন্ট করা প্রয়োজন।

এবার একটি উদাহরণের মাধ্যমে এবস্ট্রাক্ট ক্লাসের (Abstract Class)  ব্যপার টি ক্লিয়ার হওয়া যাক

Email Class

 

Message Class

AbstractionTest Class

 

Output

আমরা জানি যে, এবস্ট্রাক্ট ক্লাস (Abstract Class)  সরাসরি ইন্সট্যান্টশিয়েট করা যায় না। যদি করা হয় তাহলে আউটপুট কি আসবে?

Output

এবস্ট্রাক্ট ক্লাসের (Abstract Class)  ইন্সট্যান্টশিয়েট তৈরি করলে উপরের মত আউটপুট দেখাবে।

উপরের উদাহরণ টিতে আসলে কি কাজ হচ্ছে, একটু ব্যাখ্যায় আশা যাক।

এবস্ট্রাকশনের উদাহণের মত আমরা কোডটিকে ইমপ্লিমেন্ট করিনি।

এখানে ব্যবহার কারি নিজের মত করেই sendEmail() মেথোড নিয়ে কাজ করবে। তাই ব্যবহার কারী নিজের মতই করেই তাঁর কোড টিকে সাজাবে এই মেথোডের ভিতর।

অন্যদিকে অন্য মেথোড গুলো কিভাবে কাজ করছে তা ব্যবহার কারী জানছেনা। মেথোড গুলোর কাজ নির্দিষ্ট। ব্যবহারকারী শুধু সেগুলো ব্যবহার করবে, সে নিজের মত করে কোড করতে পারবেনা।

 

এবস্ট্রাক্ট ক্লাসে (Abstract Class)  এবস্ট্রাক্ট মেথোড তৈরিতে যে বিষয় গুলো খেয়াল রাখতে হবেঃ

  • এবস্ট্রাক্ট মেথোডে abstract keyword থাকতে হবে।
  • মেথোডের কোন বডি থাকবেনা।. void sendMSG();
  • এবস্ট্রাক্ট ক্লাসের  (Abstract Class) এবস্ট্রাক্ট মেথোড অবশ্যই এক্সটেন্ড করা ক্লাসে ইমপ্লিমেন্ট করতে হবে।

 

Reference

  • https://www.tutorialspoint.com/java/java_abstraction.htm
  • https://www.javatpoint.com/abstract-class-in-java

Leave a Reply

Your email address will not be published.

2 + 6 =