面向对象
12.1继承简介
- 继承是面向对象三大特性之一
- 通过继承可以使一个类获取到其他类中的属性和方法
- 在定义类是,可以在类名后面的括号中指定当前的父类(超类,基类)
- 继承提高了类的复用性。让类与类之间产生了关系。有了这个关系,才有了多态的特性
继承的使用
举例
# 定义一个动物类(Animal) 定义两个方法 run() sleep()
class Animal:
def run(self):
print('动物会跑.......')
def sleep(self):
print('动物睡觉......')
a = Animal()
a.run()
-------------------------
动物会跑.......
#定义一个狗类,这里的狗继承了 会跑,会睡觉的方法,因此括号里就是父类
class Dog(Animal):
# def run(self):
# print('狗会跑.......')
def speak(self):
print('我会看家....')
d = Dog()
d.run()
---------------------------
动物会跑.......
#狗会跑....... (如果注释放开,结果就会变成狗会跑,就近原则调用方法)
- 1.在创建类的时候,如果省略了父类,则默认父类是object
- 2.object是所有类的父类,所有类都继承于object
issubclass() 检测一个类是否是另一个类的子类
print(issubclass(Dog,Animal)) # True
r = isinstance(d,Dog) #true 检测d是不是Dog的实例
#r = isinstance(d,Animal) #true 检测d是不是Animal的实例
print(r)
12.2方法重写
- 如果子类中有和父类同名的方法,则通过子类实例去调用方法时,会调用子类方法而不是父类方法,这个特点我们称之为方法的重写(覆盖 overr