1. 抽象
在面向对象编程中,抽象是指将类的属性和方法捆绑在一起,形成一个整体。抽象类无法实例化,但可以作为其他类的基类或父类。在Python中,我们使用abc
模块定义抽象类,其中至少包含一个抽象方法。抽象方法是无法直接调用但可以被子类覆盖的方法。
例如,我们可以定义一个Animal
类,然后派生出具体的动物类(如Cat
和Dog
),每个类都有自己的属性和方法。
class Animal:
def __init__(self, name):
self.name = name
class Cat(Animal):
def make_sound(self):
return "Meow"
class Dog(Animal):
def make_sound(self):
return "Woof"
cat = Cat("Kitty")
dog = Dog("Buddy")
print(f"{cat.name} says: {cat.make_sound()}")
print(f"{dog.name} says: {dog.make_sound()}")
2. 封装
封装是隐藏对象内部细节的机制。通过封装,我们可以确保数据的安全性和代码的可维护性。在Python中,我们使用访问修饰符来实现封装,包括公有属性和方法以及私有属性和方法。公有属性和方法可以被类的外部访问,而私有属性和方法只能在类的内部访问。
例如,我们可以使用私有属性和方法来实现封装。
class Person:
def __init__(self, name, age):
self.__name = name # 私有属性
self.__age = age
def get_name(self):
return self.__name # 公有方法
def set_name(self, new_name):
self.__name = new_name # 公有方法
person = Person("Alice", 30)
print(person.get_name()) # 输出: Alice
person.set_name("Bob")
print(person.get_name()) # 输出: Bob
3. 继承
继承允许一个类(子类或派生类)继承另一个类(父类或基类)的属性和方法。子类可以继承父类的特性,并在此基础上添加自己的新特性。Python支持单继承和多继承,使得代码更具灵活性和可维护性。
例如,我们可以创建一个Teacher
类继承自Person
类。
class Person:
def __init__(self, name):
self.name = name
class Teacher(Person):
def teach(self, subject):
return f"{self.name} teaches {subject}"
teacher = Teacher("Mr. Smith")
print(teacher.teach("Math")) # 输出: Mr. Smith teaches Math
4. 多态
多态是指不同的子类对象调用相同的父类方法,产生不同的执行结果。多态性使得代码更加通用,兼容性更强。通过方法重写和方法重载,我们可以实现多态。
标签:__,name,python,self,多态,面向对象,方法,class,def From: https://blog.csdn.net/u012730525/article/details/137235957