zoukankan      html  css  js  c++  java
  • 面向对象编程案例03---继承之高级部分

    # -*- coding: utf-8 -*-
    #python 27
    #xiaodeng
    #file:BaseModelTest.py #模块名
    class BaseClass():
        def __init__(self,name,age):
            self.name=name
            self.age=age
            #print '__init__()'
        def speak(self,name):
            print 'base class is speak:%s'% self.name
    
    
    if __name__=="__main__":
        b=BaseClass("xiaodeng",28)
        b.speak("python")
    # -*- coding: utf-8 -*-
    #python 27
    #xiaodeng
    #面向对象编程案例03---继承之高级部分
    #http://www.cnblogs.com/Joans/archive/2012/11/09/2757368.html
    
    
    #类和对象是面向对象编程的两个方面。类创建一个实例,对象就是这个类的实例
    #初始化方法__init__可以理解为构造,有点类似于java的this
    
    
    #继承:面向对象的编程带来的好处之一就是代码的重用,实现方法就是通过继承的机制
    
    
    #语法:class 派生类名 (父类名):////
    
    
    #python中继承的特点
    '''
    1、在继承中父类的构造方法不会被自动调用,需要在其他派生类中构造中亲自专门调用
    2、在调用父类的方法时,需要加上父类的类名前缀,且需要带上self参数,
    3、python总是需要先查找对象类型的方法,如果他不能在派生类中找到对应的方法,他才开始从基类中查找
    '''
    
    
    #定义子类
    #api.py
    import BaseModel
    class SubClass(BaseModel.BaseClass):#注意这里的模块名.类名用法
        def __init__(self,name,age,salary):#添加一个salary参数
            BaseModel.BaseClass.__init__(self,name,age)#调用父类方法和属性
            self.salary=salary
            print 'salary:',self.salary
    
        def talk(self,name):
            BaseModel.BaseClass.speak(self,name)
    
    if __name__=="__main__":
        s=SubClass("xiaodeng",28,'china')
        s.talk("Hu Bei")
        print '--'*20
        s.speak("python")#通过子类调用speak方法,他会先在子类中查找,找到则调用,否则会到父类中查找
        
            
    '''
    salary: china
    base class is speak:xiaodeng
    base class is speak:xiaodeng
    '''
  • 相关阅读:
    如何清除el-dialog中的表单验证
    购物车小球飞入动画
    node的应用场景
    如何在Ubuntu Server 18.04 LTS中配置静态IP地址
    在Ubuntu上启用和禁用NetworkManager
    gcc常用命令
    cmake入门
    模拟实现pwd命令
    模拟实现ls命令
    qmake生成的Makefile在make install时遇到的一次错误
  • 原文地址:https://www.cnblogs.com/dengyg200891/p/4865979.html
Copyright © 2011-2022 走看看