জাভাতে পলিমর্ফিজম: কিভাবে পদ্ধতিগুলি ওভারলোড বা ওভাররাইড করবেন

জাভাতে পলিমর্ফিজম: কিভাবে পদ্ধতিগুলি ওভারলোড বা ওভাররাইড করবেন

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





জাভাতে কীভাবে পদ্ধতিগুলি ওভারলোড বা ওভাররাইড করতে হয় তা শিখতে এই নির্দেশিকাটি অনুসরণ করুন।





পদ্ধতি ওভারলোডিং কি?

'মেথড ওভারলোডিং' বলতে একই নামের একটি ক্লাসে বিভিন্ন পদ্ধতি সংজ্ঞায়িত করা বোঝায়। পদ্ধতিগুলোতে ভিন্ন স্বাক্ষর থাকতে হবে। একটি পদ্ধতির স্বাক্ষর হল একটি পদ্ধতির নাম এবং প্যারামিটার তালিকার সমন্বয়। এতে রিটার্ন টাইপ অন্তর্ভুক্ত নয়।





কম্পাইলার জানে কোন পদ্ধতি ব্যবহার করতে হবে টাইপ, প্যারামিটারের সংখ্যা এবং যে অর্ডারে তারা স্থাপন করা হয়েছে তা পরীক্ষা করে।

সম্পর্কিত: জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজে উত্তরাধিকার অন্বেষণ করা



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

এই ধরনের পলিমারফিজম স্ট্যাটিক বা আর্লি বাইন্ডিং নামেও পরিচিত।





নীচের পদ্ধতি ওভারলোডিং পদ্ধতি দেখুন:

class Arithmetic{
int cube(int x){
return x*x*x;
}
double cube(double x){
return x*x*x;
}
float cube(float x){
return x*x*x;
}
public static void main(String[] args){
Arithmetic myMultiplication = new Arithmetic();
System.out.println('The cube of 5 is ' + myMultiplication.cube(5));
System.out.println('The cube of 5.0 is ' + myMultiplication.cube(5.0));
System.out.println('The cube of 0.5 is ' + myMultiplication.cube(0.5));
}
}

আউটপুট:





The cube of 5 is 125
The cube of 5.0 is 125.0
The cube of 0.5 is 0.125

উপরের কোডটি দেখায় কিভাবে আপনি বিভিন্ন ধরনের ঘনক পেতে পারেন ( int , দ্বিগুণ , ভাসা ) একই পদ্ধতি ব্যবহার করে।

সাধারণত, ওভারলোডিং পদ্ধতি বিভিন্ন প্যারামিটার প্রকারের সাথে একই পদ্ধতি সংজ্ঞায়িত করতে ব্যবহৃত হয়।

পদ্ধতি ওভাররাইডিং কি?

এটি একটি উপশ্রেণীতে একটি পদ্ধতির ভিন্ন বাস্তবায়ন বোঝায়। পদ্ধতিটি অবশ্যই ইতিমধ্যেই অভিভাবক শ্রেণীতে সংজ্ঞায়িত করা হয়েছে।

ওভাররাইডিং পদ্ধতি (যেমন সাবক্লাসের মধ্যে একটি) অবশ্যই সুপারক্লাসের মতো একই পদ্ধতির স্বাক্ষর থাকতে হবে। ওভাররাইডিং পদ্ধতির রিটার্ন টাইপ একই হতে পারে অথবা সুপারক্লাসের একটি সাব -টাইপ হতে পারে।

ওভাররাইডিং সাধারণত সাবক্লাসে বস্তুর আচরণের একটি নির্দিষ্ট বাস্তবায়ন অন্তর্ভুক্ত করতে ব্যবহৃত হয়।

class Account{
public void message() {
System.out.println('
Thank you for opening an account with us!');
}
public static void main(String args[]) {
Account myAccount = new Account();
Savings mySavings = new Savings();
FixedDeposit myFixedDepo = new FixedDeposit();
myAccount.message();
mySavings.message();
myFixedDepo.message();
}
}
class Savings extends Account {
public void message() {
System.out.println('
Thank you for opening a Savings account with us!');
}
}
class FixedDeposit extends Account {
public void message() {
System.out.println('
Thank you for opening a Fixed Deposit account with us!');
}
}

আউটপুট:

Thank you for opening an account with us!
Thank you for opening a Savings account with us!
Thank you for opening a Fixed Deposit account with us!

উপরের উদাহরণটি দেখায় কিভাবে পদ্ধতি বার্তা () উপশ্রেণীতে ওভাররাইড করা হয় সঞ্চয় এবং নির্দিষ্ট পরিমান । সঞ্চয়ী হিসাবধারী ব্যাঙ্ক অ্যাকাউন্টধারীদের এবং ফিক্সড ডিপোজিট অ্যাকাউন্টের জন্য বিভিন্ন বার্তা প্রদর্শিত হবে।

সম্পর্কিত: জাভাতে স্ট্রিং ব্যবহার সম্পর্কে আপনার যা জানা দরকার

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

কোনও পদ্ধতিকে ওভাররাইড করা থেকে বাঁচতে, কীওয়ার্ডটি ব্যবহার করুন চূড়ান্ত

final void message (){
System.out.println('
Thank you for opening an account with us!');
}

যখন একটি উপশ্রেণী এটিকে ওভাররাইড করার চেষ্টা করে, একটি সংকলন ত্রুটি ঘটে।

আদর্শভাবে, একটি কন্সট্রাকটরের মধ্যে বলা সমস্ত পদ্ধতি হওয়া উচিত চূড়ান্ত । উপশ্রেণীর কারণে হতে পারে এমন অনিচ্ছাকৃত পরিবর্তন এড়ানোর জন্য।

কখনও কখনও, আপনাকে ওভাররাইডিং পদ্ধতির মধ্যে একটি ওভাররাইড পদ্ধতি অ্যাক্সেস করতে হতে পারে। আপনি কিওয়ার্ড ব্যবহার করতে পারেন সুপার এরপর ডট অপারেটর ( ) এবং এই ক্ষেত্রে পদ্ধতির নাম।

সুপারক্লাস বিবেচনা করুন পশু

class Animal{
public void move() {
System.out.println('
I can move.');
}
}

নীচে একটি সাবক্লাস, যাকে বলা হয় মাছ , যে ওভাররাইড সরান () :

class Fish extends Animal {
public void move() {
System.out.println('
I can swim.');
super.move();
}
public static void main(String args[]){
Fish Tilapia = new Fish();
Tilapia.move();
}
}

আউটপুট:

এই ইমোজিগুলি একসাথে কী বোঝায়?
I can swim.
I can move.

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

পলিমারফিজম সহ সহজ কোড

কোড সরলীকরণের জন্য পদ্ধতি ওভাররাইডিং এবং ওভারলোডিং গুরুত্বপূর্ণ, এবং সাধারণ কোড ভাল অনুশীলন।

কেন? গ্র্যান্ড সেন্ট্রাল স্টেশনের চেয়ে বেশি ইনস এবং আউটস সহ একটি জটিল কোডবেস কল্পনা করুন। এখন কল্পনা করুন একটি বিধ্বংসী বাগ আপনার চোখের সামনে আপনার পরিশ্রমকে ধ্বংস করতে শুরু করে। আপনাকে সংক্রমণের উত্সটি আলাদা করতে হবে এবং আপনাকে এটি দ্রুত করতে হবে।

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

আপনার জাভা লার্নিং লিস্টের পরেরটি অ্যারে দিয়ে কাজ করা উচিত। এগুলি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার যা ডেটা পয়েন্টগুলির ব্যাচগুলি সঞ্চয় করতে ব্যবহৃত হয়।

শেয়ার করুন শেয়ার করুন টুইট ইমেইল জাভাতে অ্যারেগুলিতে কীভাবে অপারেশন তৈরি এবং সম্পাদন করবেন

জাভা শিখছেন? অ্যারেগুলি সহজেই আপনার ডেটা পরিচালনা করতে দিন।

পরবর্তী পড়ুন
সম্পর্কিত বিষয়
  • প্রোগ্রামিং
  • জাভা
  • কোডিং টিউটোরিয়াল
লেখক সম্পর্কে জেরোম ডেভিডসন(22 নিবন্ধ প্রকাশিত)

জেরোম MakeUseOf এর একজন স্টাফ রাইটার। তিনি প্রোগ্রামিং এবং লিনাক্সের নিবন্ধগুলি জুড়েছেন। তিনি একজন ক্রিপ্টো উৎসাহী এবং সবসময় ক্রিপ্টো শিল্পের উপর নজর রাখেন।

জেরোম ডেভিডসন থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন