python学习之继承特性
python学习之继承特性
概念
继承特性,面向对象的三大特征之一。通过继承从其它类获取属性和方法
继承特性
# 一个类中有方法重复,但又不能实现全部功能
# 通过定义class 类名(父类):继承父类的所有属性和方法
class People:
def __init__(self,name,age):
self.name = name
self.age = age
def say_hello(self):
print('大家好!我的名字叫:',self.name,'我今年',self.age,'岁了。')
wzs = People('wzs',23)
wzs.say_hello()
# Man类继承父类People的属性和方法,减少代码重复性
# 子类的代码可以单独设置
class Man(People):
pass
a = Man('chuck',30)
a.say_hello()
# 如果定义类名时没有定义父类,默认父类为object
# issubclass检查一个类是否是另外一个类的子类
print(issubclass (Man,object))
方法重写
在子类中有和父类同名的方法,通过子类创建对象会使用子类的方法
在子类定义__init__()方法覆盖父类的属性。
属性的重写
# 父类的方法都会被继承包括特殊方法__init__()
# 1.子类可以重写__init__方法进行属性的重写
# 2.扩展父类的属性。
# super()方法调用父类的init
class Animal():
def __init__(self,name) :
self.name = name
class Dog(Animal):
def __init__(self,name,weight):
# super()可以用来获取当前类的父类
super().__init__(name)
self.weight = weight
d = Dog('小白',18)
print(d.name)
print(d.weight)
点点滴滴,积少成多,终有一日能发挥用处。