Method Overriding এবং Super Constructor হল অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের (OOP) দুটি গুরুত্বপূর্ণ ধারণা। এগুলি ইনহেরিটেন্সের সাথে যুক্ত এবং একটি সাব ক্লাসকে সুপার ক্লাসের বৈশিষ্ট্য ও আচরণ পরিবর্তন করার সুযোগ দেয়। নিচে বিস্তারিত আলোচনা করা হলো।
1. Method Overriding
Method Overriding হল একটি প্রক্রিয়া যেখানে সাব ক্লাসে সুপার ক্লাসের একটি মেথডের পুনরায় সংজ্ঞায়িত করা হয়। এটি পলিমরফিজমের একটি উদাহরণ এবং এটি সাব ক্লাসের নির্দিষ্ট আচরণ তৈরি করতে ব্যবহৃত হয়।
উদাহরণ:
class Animal {
void speak() {
print("Animal makes a sound.");
}
}
class Dog extends Animal {
@override
void speak() {
print("Dog barks."); // Overriding the speak method
}
}
class Cat extends Animal {
@override
void speak() {
print("Cat meows."); // Overriding the speak method
}
}
void main() {
Animal myDog = Dog();
Animal myCat = Cat();
myDog.speak(); // Output: Dog barks.
myCat.speak(); // Output: Cat meows.
}2. Super Constructor
Super Constructor হল একটি মেথড যা সাব ক্লাসের কনস্ট্রাক্টরে সুপার ক্লাসের কনস্ট্রাক্টরকে কল করার জন্য ব্যবহৃত হয়। এটি ইনহেরিটেড বৈশিষ্ট্যগুলির প্রাথমিক মান সেট করতে সাহায্য করে।
উদাহরণ:
class Animal {
String name;
// Super constructor
Animal(this.name); // Constructor with a parameter
void displayInfo() {
print("Animal Name: $name");
}
}
class Dog extends Animal {
// Subclass constructor
Dog(String name) : super(name); // Calling the super constructor
void bark() {
print("$name barks.");
}
}
void main() {
Dog myDog = Dog('Buddy'); // Creating an instance of Dog
myDog.displayInfo(); // Output: Animal Name: Buddy
myDog.bark(); // Output: Buddy barks.
}Combining Method Overriding and Super Constructor
উদাহরণ:
class Animal {
String name;
Animal(this.name); // Super constructor
void speak() {
print("$name makes a sound.");
}
}
class Dog extends Animal {
Dog(String name) : super(name); // Calling the super constructor
@override
void speak() {
print("$name barks."); // Overriding the speak method
}
}
class Cat extends Animal {
Cat(String name) : super(name); // Calling the super constructor
@override
void speak() {
print("$name meows."); // Overriding the speak method
}
}
void main() {
Animal myDog = Dog('Buddy');
Animal myCat = Cat('Whiskers');
myDog.speak(); // Output: Buddy barks.
myCat.speak(); // Output: Whiskers meows.
}
Read more