继承简介

作者: 青蛙兄 分类: 进阶 发布时间: 2019-07-03 22:56

继承
#直接从Animal类中来继承它的属性和方法
#继承是面向对象三大特性之一
#通过继承我们可以使一个类获取其他类中的属性和方法
#继承的好处:
# 通过我们继承可以直接让子类获取到父类的方法和属性,避免编写重复性代码,符合OCP原则
# 所以我们经常需要通过继承来对一个类进行扩展

class Animal:  
    def run(self):  
        print('跑步ing')  
    def sleep(self):  
        print('睡觉ing')  
class Dog(Animal):  
    def bark(self):  
        print('狂叫ing')  
d = Dog()  
d.run()  
d.sleep()  
d.bark()  
result = isinstance(d,Dog)  
print(result)   ##True  
result = isinstance(d,Animal)  
print(result)   ##True  
  
##如果在创建类时,如果省略了父亲,则默认父类为object  
##object 是所有类的父类,所有类都继承自object  
##issubclass 检查一个类是不是另一个类的子类  
result = issubclass(Dog,Animal)  
print(result) #True  
  
#isinstance()用来检查一个对象是否是一个类的实例  
#如果这个类是这个对象的父类,也会返回True  
#所有对象都是object的实例  
  
print('--'*40)  
#如果在子类中存在和父类同名的方法,则通过子类实例去调用方法时,会调用子类的方法,而不会调用父类方法,  
#这个特点我们称之为方法的重写,覆盖 override  
class A:  
    def test(self):  
        print('AAA')  
class B(A):  
    def test(self):  
        print('BBB')  
class C(B):  
    def test(self):  
        print('CCC')  
c =C()  
c.test() ##CCC  
#当我们调用一个对象的方法时,会优先去当前对象中寻找,如果没有则去父类寻找 

发表评论

电子邮件地址不会被公开。