Yani C# Point
ve Size
ile benzer bir Area
sınıfları ve Point
ve Area
sınıfları istiyorum. Gördüğünüz gibi diğer width, height
sahipken biri x, y
sahiptir dışında iki sınıfları, aynısı olanAlan ve Nokta için ortak bir temel sınıf nasıl uygulamalıyım ve ne aramalıyım?
class Point:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y)
# Many other magic methods too!
class Area:
def __init__(self, width=0, height=0):
self.width = width
self.height = height
def __add__(self, other):
return Area(self.width + other.width, self.height + other.height)
# Many other magic methods too!
: Burada iki sınıfın basit uygulamalar vardır.
Bu ikisi için bir çeşit temel sınıfın uygulanması için iyi bir çözüm ne olurdu? Eğer değişmez nesneleri kullanarak sakıncası yoksa
@Lucian Muhtemelen "Gördüğünüz gibi, iki sınıfları aynısı diğer' genişlik, height' sahipken biri 'x, y' sahiptir dışında olan" * çünkü * Bir üs sınıf, birden fazla sınıfta yinelenen koddan kurtulur. En iyi çözüm olduğunu söylemiyorum ama bu ** bir ** çözüm. –
Her birinin yapısında iki parametre olması gerekir, ancak bunların mutlaka ortak bir üst sınıfı doğrulamak için yeterli olmasını sağlamaz. – TigerhawkT3
@ TigerhawkT3 Her ikisi de aynı şeyi yapan ortak 10 metodu var ... İki özellik için sadece farklı isim ... –