چندریختی یکی از پایههای اصلی برنامه نویسی شیءگراس که مفهومش میشه همون چندشکلی یا قابلیت داشتن چندین شکل که البته واضحه. این مفهوم به آبجکت هامون این اجازه رو میده تا رفتار های متفاوتی برای یه متود یا یه عمل یکسان از خودشون نشون بدن. یعنی میتونیم یه متود رو چندین بار تعریف کنیم و کارای مختلفی باهاش کنیم با اینکه اسمشون یکیه
مثال زیر نحوه استفاده از چند ریختی در زمان بارگذاری متود ( Method Overloading ) رو نشونتون میده:
class Shape {
draw() {
console.log("Drawing a shape");
}
draw(width, height) {
console.log("Drawing a shape with width:", width, "and height:", height);
}
}
class Circle extends Shape {
draw() {
console.log("Drawing a circle");
}
draw(radius) {
console.log("Drawing a circle with radius:", radius);
}
}
const circle = new Circle();
circle.draw(); // Output: Drawing a circle
circle.draw(10); // Output: Drawing a circle with radius: 10
const shape = new Shape();
shape.draw(); // Output: Drawing a shape
وابستگی در OOP اشاره به ارتباط دوتا کلاس به هم داره که یعنی یه کلاس برای اینکه کارشو انجام بده نیاز به یه کلاس دیگه داره، این وابستگی ها هم میتونه به صورت مستقیم یا غیر مستقیم باشه
یه مثال هم از وابستگی باهم ببینیم:
class Animal {
constructor(name, soundMaker) {
this.name = name;
this.soundMaker = soundMaker;
}
makeSound() {
this.soundMaker.makeSound(this);
}
}
class SoundMaker {
makeSound(animal) {
console.log(`${animal.name} makes a ${animal.sound}`);
}
}
const dog = new Animal("Dog", new SoundMaker());
const cat = new Animal("Cat", new SoundMaker());
dog.makeSound(); // Output: Dog makes a bark
cat.makeSound(); // Output: Cat makes a meow
#oop #oop_7
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥8⚡4🔥2💔1