一、封装性
封装是面向对象的核心思想之一,指将数据与对其进行操作的方法(或称为函数)封装在一起,成为一个“类”(Class)。通过封装,可以达到隐藏数据、保护数据、使代码易于理解和维护等目的。
在Python中,我们可以通过定义类来实现封装。
class Student: def __init__(self, name, roll): self.name = name self.roll = roll def display(self): print("Name:", self.name) print("Roll:", self.roll) s = Student("Tom", 25) s.display()
上述代码中,我们使用Class定义一个学生类(Student),并将学生的姓名(name)和学号(roll)作为类属性(类变量)。同时,我们通过定义一个display函数,完成了将学生信息输出到控制台的任务。
二、继承性
继承是指在已有类的基础上,创建一个新的类,新的类可以从原类中继承方法和属性。继承允许我们使用现有的类来定义新的类,从而充分利用现有类的特性。
在Python中,我们可以通过继承来实现对现有类的重用。
class Animal: def __init__(self, name): self.name = name def speak(self): pass class Dog(Animal): def speak(self): return "Woof!" class Cat(Animal): def speak(self): return "Meow!" d = Dog("Rufus") print(d.speak()) c = Cat("Whiskers") print(c.speak())
上述代码中,我们定义了一个Animal类和两个子类(Dog和Cat),并通过继承Animal类的方式来重写speak方法从而实现具体的汪汪和喵喵叫声。通过继承Animal类,我们不仅避免了重复地定义Animal类的属性和方法,还保留了其完整的结构和继承关系。
三、多态性
多态是指一类事物,具有多种状态、多种形态或者多种用途的能力。在面向对象程序设计中,多态指同样的操作作用于不同的对象,可以有不同的结果。它让开发人员可以编写出更灵活、可扩展的程序。
在Python中,我们可以使用继承和同名方法重载来实现多态。
class Employee: def getSalary(self): pass class Manager(Employee): def getSalary(self): return "Manager's salary." class Clerk(Employee): def getSalary(self): return "Clerk's salary." employees = [Manager(), Clerk()] for emp in employees: print(emp.getSalary())
上述代码中,我们定义了一个Employee类以及两个子类(Manager和Clerk),并且在子类中重载了getSalary方法,从而实现了调用同一个方法但是得到不同的输出。同时,我们通过将子类对象放入一个列表中,进一步展示了多态的特性。