码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象之继承

时间:2017-10-16 15:06:43      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:需要   lex   att   直接   一个人   var   人事   pre   个人   

类:具有相同属性和方法的一类事物

对象(实例):具体的某一个人事物

实例化:对象=类的过程

类的定义:class关键字 ,类名首字母大写

类中的属性:

动态属性:方法

静态属性:类属性

总结:

  通过init方法初始化来的

  在一个类的外面去使用一个对象,这个对象叫什么,你就用这个对象的名字去调它内部的方法和属性

  而在一个类的内部去使用一个对象,self就是这个对象本身,使用self去调用它的属性

静态属性(类属性):所有的对象共有的属性,可以直接被类调用

对象属性: 是只属于某一个对象的,必须在实例化之后用对象调用

动态属性:调用方法,方法

调用方法:

  对象点方法名

  不必传的参数:self

当类实例化的时候:自动的触发__init__方法。实例化的时候类名(参数),这个参数传给init方法

class 类名:
    def __init__(self,参数1,参数2):
        self.对象的属性1 = 参数1
        self.对象的属性2 = 参数2

    def 方法名(self):pass

    def 方法名2(self):pass

对象名 = 类名(1,2)  #对象就是实例,代表一个具体的东西
                  #类名() : 类名+括号就是实例化一个类,相当于调用了__init__方法
                  #括号里传参数,参数不需要传self,其他与init中的形参一一对应
                  #结果返回一个对象
对象名.对象的属性1   #查看对象的属性,直接用 对象名.属性名 即可
对象名.方法名()     #调用类中的方法,直接用 对象名.方法名() 即可

继承是类中提供的一种新语法

面向对象的三大特性:封装、继承、多态

继承:什么是什么的关系

  类如:他大舅他二舅都是他舅,高桌子低板凳都是木头。

 

 

在继承中:

  子类可以继承父类的所有属性和方法,但是,当父类和子类中有同名方法的时候,一定是调用子类的,如果想使用父类该方法的功能,需要借助super方法。

 

 

对象:可以调用自己本类和父类的所有方法和属性,先调用自己的,自己没有才调父类的

谁(对象)调用方法,方法中的self就指向谁

 

super方法:

class Animal:
  def __init__(self,name,blood,aggr):
    self.name = name
    self.blood = blood
    self.aggr = aggr

class Person(Animal):
  def __init__(self,name,blood,aggr,RMB):
    super(Person,self).__init__(name,blood,aggr)
    self.money = RMB
  
  def attack(self,dog):
    dog.blood -= self.aggr

class Dog(Animal):
  def __init__(self,name,blood,aggr,varieties):
    super().__init__(name,blood,aggr)
    self.breed = varieties

  def bite(self,person):
    person.blood -= self.aggr

alex = Person(‘alex‘,250,12,1000000)
egg = Dog(‘egg‘,25000,20,‘金毛‘)

 

  






















面向对象之继承

标签:需要   lex   att   直接   一个人   var   人事   pre   个人   

原文地址:http://www.cnblogs.com/sunxiansheng/p/7545800.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!