#Polymorphism

class Apple():

def __init__(self,name):
self.name = name

def information(self):
return self.name + " 100 calories"

class Banana():

def __init__(self,name):
self.name = name

def information(self):
return self.name + " 200 calories"

banana = Banana("banana")
apple = Apple("apple")

print(banana.information())
print(apple.information())

fruit_list = [banana,apple] # Polymorphism yapabilmek için önce bu şekilde bir obje oluşturduk

for fruit in fruit_list:
print(fruit.information()) # Hem class Apple hem de class Banana sınıfları içinde aynı isimde information adında metod olduğu için bunları iki farklı instance ile
# aynı metod ile çağırabiliyoruz işte buna Polymorphism
deniyor.
# bir başka deyişle
farklı sınıflarda aynı metod bile olsa farklı sınıfların instance'ında o metodu o sınıfa aitmiş gibi çağırabiliyoruz.

def get_info(fruit):
print(fruit.information())

get_info(banana)
get_info(apple)