Bu doğru mu benPython Metodu geçersiz kılıyor, imza konusu mu?
class Super():
def method1():
pass
class Sub(Super):
def method1(param1, param2, param3):
stuff
var Diyelim? Yöntem1 çağrıları her zaman alt sınıfa gidecek mi? Benim planım, her bir alt sınıf metodu herbir farklı yöntemle
Super.method1 alırken Sub.method1 3 argüman alır gerçeği LSP ihlali midir hiçbiri farklı aslında bunları yaparken arayüzleri? – Unode
@Unode: Doğru. Bu, alt sınıfın yönteminin argümanlarının hepsinin varsayılan değerlere sahip olmasıyla çözülebilir, ancak sonra hangi varsayılanların uygun olacağını görürsünüz. –
Anladım. Ama sonra sadece açıklığa kavuşturmak için. Eğer üst metot1 Super.method1 olarak tanımlandıysa (param1 = Yok, param2 = Yok, param3 = Yok) 'alt sınıflarda“ Sub.method1 (param1, param2, param3) ”olarak tanımlanmışsa, yine de LSP'yi ihlal ederdi? Nitelikler bir durumda zorunlu, diğeri değil. Bundan dolayı, alt sınıf arayüzünü değiştirmeden anladığım kadarıyla, LSP'yi ihlal etmemenin tek yolu, üstte varsayılan değerler olmaksızın parametreleri sahip olacaktır. Bunu düzeltiyor muyum yoksa LSP'yi aşırı yorumluyor muyum? – Unode