переопределение против полиморфизма против перегрузки - PullRequest
0 голосов
/ 02 января 2019

В чем разница между этими двумя?

Суперкласс, имеющий explore (), и наследующий класс, имеющий один и тот же метод. Это переопределение или полиморфизм?

Я ясно сРазница между ч / б переопределением и перегрузкой, но полиморфизм и переопределение кажутся одинаковыми.Или они?

class A:
    def explore(self):
        print("explore() method from class A")
class B(A):
    def explore(self):
        super().explore() # calling the parent class explore() method
        print("explore() method from class B") 
b_obj = B()
b_obj.explore()

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Переопределение - Метод экземпляра в подклассе с той же сигнатурой (имя, плюс номер и тип его параметров) и типом возвращаемого значения в качестве метода экземпляра в суперклассе переопределяет метод суперкласса.

Где в полиморфизме можно добиться переопределением.

Подклассы класса могут определять свое собственное уникальное поведение и, в то же время, использовать некоторые из тех же функций родительского класса. Полиморфизм - это когда вы не уверены в типе объектов во время выполнения, и вызывается самый специфический метод. Поэтому поведение вызываемого метода может отличаться в зависимости от типа объектов во время выполнения.

0 голосов
/ 02 января 2019

Полиморфизм - это широкое понятие, которое включает переопределение и перегрузку и многое другое.Это просто способность объекта обеспечивать несколько вариантов поведения.

Переопределение и перегрузка являются двумя примерами того, как вы можете достичь полиморфизма.

Может быть полезен следующий связанный вопрос:

Являются ли полиморфизм, перегрузка и переопределение сходных понятий

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...