Czy w Pythonie można tworzyć klasy abstrakcyjnie podobnie jak w C++? Mam na myśli klasę, która będzie zawierać podstawowe atrybuty, będzie służyć do tworzenia klas pochodnych i nie będzie można utworzyć obiektu tej klasy.
# base class
class Person():
def __init__(self, name, surname):
self.__name = name
self.__surname = surname
print("[Person created]")
def getName(self):
return self.__name
def getSurname(self):
return self.__surname
def __str__(self):
return "{name} {surname}".format(name=self.__name, surname=self.__surname)
# derived class
class Employee(Person):
def __init__(self, name, surname, payment):
Person.__init__(self, name, surname)
self.__payment = payment
print("[Employee created]")
def getPayment(self):
return self.__payment
def setPayment(self, payment):
self.__payment = payment
def __str__(self):
return "{name} {surname} {payment}".format(name=self.getName(), surname=self.getSurname(), payment=self.__payment)
def main():
john = Person("John", "Doe")
print(john)
michael = Employee("Michael", "Stanley", 10000)
print(michael)
michael.setPayment(5000)
print(michael)
# main
if __name__ == "__main__":
main()