Наследование классов в Python

Наследование классов в Python

Изучая Объектно Ориентированное Программирование вы должно быть сталкивались с понятием класса в Python. В простейшем виде класс можно представить как чертеж по которому можно построить сколь угодно много объектов со сходными методами и свойствами, для этого просто пропишите необходимые атрибуты и методы в определении класса и вы сможете обратиться к ним из любой точки программы, множество раз.

# ключевое слово класс предшествует названию класса, далее вызов простого метода с ключевым  словом self 
class Dog( ):           
      def showAge(self, age):
                print(age) 

# создаем объект                
fred = Dog( )

# вызов метода класса
sam.showAge(6)  

Следуя нашей логике вы можете создать другой класс для другого рода животного, скажем кошки. При этом у обоих классов могут быть сходные атрибуты(свойства) и методы.


class Cat( ):
    def showAge(self, age):
      print(age)
      
cat = Cat( )
cat.showAge(7)

И вместо того, чтобы писать один и тот же код дважды, мы используем понятие, называемое наследованием. Наследование — это одна из концепций, позволяющая использовать код содержащийся в одном из классов, повторно. При этом, нет необходимости копировать сам код.
Посмотрим это на примере:


class Pet( ):
    def showAge(self, age):
        print(age)

# для того чтобы наследовать класс, необходимо поместить название наследуемого класса в скобки после имени класса наследника        
class Dog(Pet):
    
    # свойство
    species1 = "Canine"

class Cat(Pet):
    species2 = "Feline"
    
    
dog = Dog()
dog.showAge(8)

# вывод
8

cat = Cat()
cat.showAge(9)

# вывод
9

# создадим объект из базового класса
pet = Pet()

# вызов свойства класса Dog недоступен 
pet.species1

Если у вас есть два или более классов, использующих похожий код, создается так называемый супер класс или базовый класс. Два класса, которые наследуют весь код внутри супер класса называются подклассами. Следует понимать что, наследование работает только в порядке: от базового класса к подклассу. Таким образом, мы реализовали концепцию наследования в Python, позволившую сократить нам количество строчек кода.

Источник

Просмотров:

Добавить комментарий

Adblock
detector