Полиморфизм в Python против полиморфизма в JAVAPython

Программы на Python
Ответить
Anonymous
 Полиморфизм в Python против полиморфизма в JAVA

Сообщение Anonymous »

Я пытаюсь понять полиморфизм в Python. Прочитал много статей, но у меня все еще есть одно сомнение. Когда я сравниваю с Java, это меня немного сбивает с толку в Python.

Насколько мне известно, полиморфизм - это «одна вещь во многих формах». Полиморфизм можно продемонстрировать с помощью перегрузки операторов и перегрузок методов. Давайте рассмотрим перегрузку методов как средство демонстрации концепции полиморфизма. В Java мы можем написать это без использования наследования. См. код ниже.

Код: Выделить всё

 public class Main{
public static void main(String[] args) {
System.out.println(add(1,2));;
System.out.println(add(1,2,3));
}
public static int add(int a,int b){
return a+b;
}
public static int add(int a,int b,int c){
return a+b+c;
}
}
Код Python:

Код: Выделить всё

class TestPolymorphism:
def add(self,a,b):
return (a+b)
def add(self,a,b,c):
return (a+b+c)

obj = TestPolymorphism()
print(obj.add(1,2)) #will get an error
print(obj.add(1,2,3))
Та же перегрузка метода работает в Java, но не в Python. Почему есть разница? Если я хочу, чтобы это работало, мне нужно изменить свой код Python, как показано ниже:

Код: Выделить всё

class TestPolymorphism:
def add(self,a,b,c=None):
if c ==None:
sum  = a+b
return sum
else:
sum = a+b+c
return sum

obj = TestPolymorphism()
print(obj.add(1,2))
print(obj.add(1,2,3))
Я не уверен, что приведенный выше код является примером полиморфизма. Есть такие статьи, которые не дают мне убедительной аргументации.

может ли кто-нибудь дать мне теорию полиморфизма в Python?

Подробнее здесь: https://stackoverflow.com/questions/611 ... sm-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»