python语言常见面试题:描述Python中的封装、继承和多态的概念,并给出相应的代码示例。

封装(Encapsulation)
封装是面向对象编程的四大特性之一,它是指隐藏对象的属性和实现细节,仅对外公开接口,控制对属性的访问。这样可以提高代码的可读性和安全性。

代码示例

 

python复制代码

class Person:
def __init__(self, name, age):
self.__name = name # 私有属性
self.__age = age # 私有属性
def get_name(self): # 公有方法,获取私有属性
return self.__name
def get_age(self): # 公有方法,获取私有属性
return self.__age
# 使用封装
p = Person('Tom', 20)
print(p.get_name()) # 输出:Tom
print(p.get_age()) # 输出:20

在这个例子中,__name 和 __age 是私有属性,它们只能通过公有方法 get_name 和 get_age 访问,不能直接访问。这就是封装的概念。

继承(Inheritance)
继承是面向对象编程的另一个重要特性,它允许我们定义一个新类(子类),该类继承自一个已存在的类(父类),并可以添加新的方法和属性,或者重写父类的方法。

代码示例

 

python复制代码

class Animal:
def __init__(self, name):
self.name = name
def speak(self):
raise NotImplementedError("子类必须实现此方法")
class Dog(Animal):
def speak(self):
return "汪汪汪"
class Cat(Animal):
def speak(self):
return "喵喵喵"
# 使用继承
d = Dog('小黑')
print(d.name) # 输出:小黑
print(d.speak()) # 输出:汪汪汪
c = Cat('小花')
print(c.name) # 输出:小花
print(c.speak()) # 输出:喵喵喵

在这个例子中,Dog 和 Cat 是 Animal 的子类,它们继承了 Animal 的 name 属性和 speak 方法,并实现了自己的 speak 方法。

多态(Polymorphism)
多态是面向对象编程的又一重要特性,它是指允许不同类的对象对同一消息作出响应。在Python中,多态主要体现在方法的重写和方法的重载上。

代码示例

 

python复制代码

class Shape:
def area(self):
raise NotImplementedError("子类必须实现此方法")
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return 3.14 * self.radius ** 2
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
# 使用多态
shapes = [Circle(5), Rectangle(4, 6)]
for shape in shapes:
print(shape.area()) # 不同的对象调用相同的方法,但行为不同

在这个例子中,Circle 和 Rectangle 是 Shape 的子类,它们都实现了 Shape 的 area 方法。当我们遍历 shapes 列表并调用每个对象的 area 方法时,每个对象都会根据自己的实现来计算面积,这就是多态的体现。

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

广寒舞雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值