zoukankan      html  css  js  c++  java
  • 继承介绍以及单继承

      1.继承的概念

       现实生活中,继承一般指的是子女继承父辈的财产。

       在程序中,继承描述的是事物之间的所属关系,例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物;同理,波斯猫和巴黎猫都继承自猫,而沙皮狗和斑点狗都继承狗。

        2.继承示例

        

    #定义一个父类,如下:
    class Cat(object):
        def _init_(self,name,color="白色"):
            self.name = name
            self.color = color
        def run(self):
            print("%s --在跑"%self.name)
    
    #定义一个子类:继承Cat类如下:
    class Bosi(Cat):
        def setNewName(self,newName):
            self.name = newName
        def eat(self):
            print("%s--在吃"%self.name)
    bs = Bosi(“印度猫”)
    print(“bs的名字为:%s”%bs.name)
    print("bs的颜色为:%s"%bs.color)
    bs.eat()
    bs.setNewName("波斯")
    bs.run()

      说明:

       *虽然子类,没有定义 _init_方法,但是父类有,所以在子类继承父类的时候这个方法就被继承了,所以只要创建Bosi的对象,就默认执行了那个继承过来的 _init_ 方法

       总结:

        *子类在继承的时候,在定义类时,小括号()中为父类的名字

        *父类的属性、方法,会被继承给子类

       注意点:

    class Animal(object):
        def _init_(self,name = '动物',color = '白色')
            self._name = name
            self.color = color
        def _test(self):
            print(self._name)
            print(self.color)
         def test(self):
            print(self._name)
            print(self.color)
    
    class Dog(Animal):
         def dogTest(self):
               #print(self._name) #不能访问到父类的私有属性
               print(self.color)
          def deoTest2(self):
               #self._test()  #不能访问父类中的私有方法
               self.test()
    A = Animal()
    #print(A._name)  #程序出现异常,不能访问私有属性
    print(A.color)
    #A._test()    #程序出现异常,不能访问私有方法
    A.test() 
    
    print("-----分割线-------")
    
    D = Dog(name = "小花狗",color = "黄色")
    D.dogTest1()
    D.dogTest2()

     * 私有的属性,不能通过对象直接访问,但是可以通过方法访问

     * 私有的方法,不能通过对象直接访问

      * 私有的属性、方法,不会被子类基础,也不能被访问

       * 一般情况下,私有的属性、方法都是不对外公布的,往往用来做内部的事情,起到安全的作用。

  • 相关阅读:
    In Java, how do I read/convert an InputStream to a String? Stack Overflow
    IFrame自动更改大小
    [置顶] 获取服务器上格式为JSON和XML两种格式的信息的小程序
    Qt VS MFC
    [技术分享]使用 UAG 发布 RemoteAPP
    linux2.6.32在mini2440开发板上移植(11)之配置USB外设
    MFC控件(2):Text_Edit_Control
    CentOS 6.4 安装 Oracle 10g2 备记
    sql lite 二个数据库之间的表进行复制
    变量和函数的定义和声明
  • 原文地址:https://www.cnblogs.com/FlameLuo/p/9735963.html
Copyright © 2011-2022 走看看