美文网首页
python对象继承,多继承,多态,类方法,静态方法,类属性

python对象继承,多继承,多态,类方法,静态方法,类属性

作者: miniminiming | 来源:发表于2017-12-16 16:02 被阅读0次

classAnimal:

def__init__(self):

"""子类初始化的时候默认调用?"""

self.name ="shit"

self.age ="123"

self.__private_num =12121;

defeat(self):

print("吃")

defpoo(self):

print("拉屎")

def__privateFunc(self):

"""私有方法不会被子类继承"""

print("animal's private function")

classDog(Animal):

"""继承功能"""

def__init__(self):

"""看来这个跟java类似,如果不显式调用父类构造,那么则不会走父类构造"""

self.sex ="田园公狗"

defbark(self):

#私有变量只能自己调用,不能以任何形式的外部对象调用

# print(super().__private_num)

print("瞎JB叫")

classGodDog(Dog):

defbark(self):

"""重写父类的方法"""

print("神狗说人话")

"""调用父类的方法,两种方式"""

# Dog.bark(self)

super().bark()

classCat(Animal):

"""继承功能"""

defcatch(self):

print("捉老鼠")

# dog = Dog()

# dog.eat()

# cat = Cat()

# cat.poo()

godDog = GodDog()

godDog.bark()

print(godDog.name)

print(godDog.sex)

#==========================================================================================

classHuman:

defeat(self):

print("eat shit")

classFather(Human):

defteach(self):

print("用 拳头 教育")

deftest1(self):

print("test1")

classMother(Human):

defteach(self):

print("用巴掌 教育")

deftest2(self):

print("test2")

classSon(Father,Mother):

pass

defteach(self):

#这样调用,默认调用第一个继承类的方法

super().teach()

Father.teach(self)

Mother.teach(self)

print("自学成材")

Human.eat(self)

son = Son()

son.teach()#这样调用,默认调用第一个继承类的方法

# son.test1()

# son.test2()

# son.eat()

#__mro__它会打印出一个类的调用顺序,也就是找属性和方法的顺序路径

# print(Son.__mro__)

#==========================================================================================

"""多态"""

classDog(object):

#类属性,相当于java的静态变量,随类走的,用类名调用

num =0

def__init__(self):

#这个age就相当于实例属性

self.age =10

Dog.num = Dog.num +1

@classmethod

defadd_num(cls):

"""类方法,由这个装饰器(注解)来标识,由类名调用"""

Dog.num +=10

@staticmethod

defmulti_num():

"""静态方法,由staticmethod来标识,这种方法可以没有参数,

其他都要有默认参数,所以它与类方法的主要区别就是有无参数^_^"""

Dog.num *=5

defprint_self(self):

print("i am a dog")

classGodDog(Dog):

def__init__(self):

super().__init__()

defprint_self(self):

print("haha this is a god dog")

defintroduce(temp):

"""多态,直到运行到这个地方的时候才知道对象是个什么东西"""

temp.print_self()

dog1 = Dog()

dog2 = GodDog()

introduce(dog1)

introduce(dog2)

#通过类名调用类方法

Dog.add_num()

#也可以通过对象来调用类方法

# dog1.add_num()

Dog.multi_num()

print(Dog.num)

相关文章

  • 面向对象编程

    主要包括: 基本概念 属性私有化(类的封装) 实例属性与类属性 静态方法、类方法、与实例方法 继承与多态 获取对象...

  • python对象继承,多继承,多态,类方法,静态方法,类属性

    classAnimal: def__init__(self): """子类初始化的时候默认调用?""" self....

  • JS对象,原型

    面向对象 是一种思维方式三大特点:继承,多态,封装几个概念: 类,对象,属性,方法,成员,类成员,实例成员,静态类...

  • python基础-09-面向对象、装饰器

    面向对象 类概念 类的定义 类的实例化 类和实例的属性 类的私有变量 数据封装 继承 多态 多继承 类的特殊方法 ...

  • python-高级面向对象

    一:类和对象: 二:魔法方法: 三:私有属性与私有方法: 四:继承与多继承: 五:单例模式 六:类方法与静态方法

  • python类的继承关系

    python类的继承关系面向对象三大特征:继承/封装/多态 继承的基本形式:成员变量继承,类方法继承例如:成员变量...

  • Python面向对象编程

    类相关知识 对象相关知识 类属性增删改查 实例属性增删改查 对象与实例属性 静态属性 类方法 静态方法 组合 继承...

  • Python基础语法(九)继承

    继承 Python 格式: 私有方法、属性不会被继承,所以子类不能调用父类的方法或属性 多继承 格式: 多继承扩展

  • Python所学----python高级(中)

    一. 单继承 、多继承、多态,重写与父类 1.单继承、就是子类继承父类的属性与方法 2.多继承、就是子类继承多个父...

  • javase part4 - 面向对象

    Object is everything. 面向对象几大概念:(封装,继承,多态) (类,对象,属性,方法) 封装...

网友评论

      本文标题:python对象继承,多继承,多态,类方法,静态方法,类属性

      本文链接:https://www.haomeiwen.com/subject/vxgswxtx.html