جلسه سی و سوم
حل تمرین کلاس ها
مثال 1: کلاس و وراثت(اتومبیل)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<xmp># Example 1: Class and Inheritance # Define a class called "Vehicle" class Vehicle: def __init__(self, make, model, year): self.make = make self.model = model self.year = year def display_info(self): print(f"This vehicle is a {self.year} {self.make} {self.model}.") # Define a subclass called "Car" that inherits from "Vehicle" class Car(Vehicle): def __init__(self, make, model, year, doors): super().__init__(make, model, year) self.doors = doors def display_info(self): print(f"This car is a {self.year} {self.make} {self.model} with {self.doors} doors.") # Create an instance of the Car class my_car = Car("Toyota", "Camry", 2022, 4) my_car.display_info()</xmp> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<xmp>مثال 2: کلاس و وراثت در حیوانات و سگ ها # Example 2: Class and Inheritance # Define a class called "Animal" class Animal: def __init__(self, species, sound): self.species = species self.sound = sound def make_sound(self): print(f"The {self.species} makes a sound: {self.sound}.") # Define a subclass called "Dog" that inherits from "Animal" class Dog(Animal): def __init__(self, species, sound, breed): super().__init__(species, sound) self.breed = breed def make_sound(self): print(f"The {self.breed} dog makes a sound: {self.sound}.") # Create an instance of the Dog class my_dog = Dog("Canine", "Woof", "Golden Retriever") my_dog.make_sound()</xmp> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<xmp>مثال 3:کلاس و وراثت دراشکال و مستطیل. # Example 3: Class and Inheritance # Define a class called "Shape" class Shape: def __init__(self, color): self.color = color def display_color(self): print(f"This shape is {self.color}.") # Define a subclass called "Rectangle" that inherits from "Shape" class Rectangle(Shape): def __init__(self, color, width, height): super().__init__(color) self.width = width self.height = height def display_info(self): print(f"This rectangle is {self.color} and has dimensions {self.width}x{self.height}.") # Create an instance of the Rectangle class my_rectangle = Rectangle("Blue", 5, 10) my_rectangle.display_color() my_rectangle.display_info()</xmp> |
Overriding (بازنویسی)
Overriding (بازنویسی) در پایتون یک مفهوم کلیدی در برنامه نویسی شی گرا است. Overriding به شما امکان می دهد تا رفتار پیش فرض یک متد را در کلاس فرزند (child class) تغییر دهید.
وقتی یک کلاس فرزند از کلاس پدر (parent class) ایجاد می شود، به طور خودکار تمام متدهای کلاس پدر را به ارث می برد. اما اگر شما در کلاس فرزند یک متد را با همان نام تعریف کنید، متد موجود در کلاس پدر بازنویسی (overridden) می شود.
بازنویسی متدها به شما امکان می دهد تا رفتار پایه را تغییر دهید و آن را به نیازهای خاص خود سفارشی کنید. این به شما کمک می کند تا کد را انعطاف پذیر و قابل تعمیم نگه دارید.
همچنین، بازنویسی متدها می تواند به همراه سایر ویژگی های شی گرا مانند وراثت و پلی مورفیسم استفاده شود تا کد شما سازمان یافته تر و خواناتر شود.
مثال 4:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<xmp># Example 1: Method Overriding # Define a class called "Vehicle" class Vehicle: def description(self): print("This is a vehicle.") # Define a subclass called "Car" that inherits from "Vehicle" class Car(Vehicle): def description(self): print("This is a car.") # Create an instance of the Car class my_car = Car() my_car.description()</xmp> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<xmp>مثال 5: # Example 1: Class Composition # Define a class called "Engine" class Engine: def start(self): print("Engine started.") # Define a class called "Car" that contains an instance of the "Engine" class class Car: def init(self): self.engine = Engine() def start_engine(self): self.engine.start() # Create an instance of the Car class and start the engine my_car = Car() my_car.start_engine()</xmp> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<xmp>مثال 6: # Example 2: Class Composition # Define a class called "Monitor" class Monitor: def display(self): print("Displaying on the monitor.") # Define a class called "Computer" that contains an instance of the "Monitor" class class Computer: def init(self): self.monitor = Monitor() def display_output(self): self.monitor.display() # Create an instance of the Computer class and display output on the monitor my_computer = Computer() my_computer.display_output()</xmp> |