精华内容
下载资源
问答
  • java 是单继承的 ---好处是减少了方法的混用 c是多继承的----好处是极高的提高了代码的复用性,一个类可以通过继承多个类来组成新类 如下面这行代码 就是方法的混用 Class A { void m(); } Class B { ...

    java 是单继承的  ---好处是减少了方法的混用

    c是多继承的----好处是极高的提高了代码的复用性,一个类可以通过继承多个类来组成新类

     

    如下面这行代码 就是方法的混用

    Class A
    {
     void m();
    }
    Class B
    {
    int m(){return 1;}
    }
    
    Class c extends A,B
    {
     ?=new c().m();      //这个时候你不知道是调用了A的m方法还是B的m方法
    }

     

    转载于:https://www.cnblogs.com/xuwangqi/p/11083614.html

    展开全文
  • 单继承的多重继承,典型的问题,继承层次繁多,混乱没有方向,继承树结构不对称。如何解决这样的混乱问题呢? 1.父节点都是虚节点,不可以进行实例化。父节点定义子类行为规范,不可直接进行实例化todo。实际行为...

    面向对象编程使用多年,在项目依然无法解决继承的问题。高效与凌乱并存,危险重重。多重继承之后的代码维护简直地狱一般,现在继承的多数使用更像是package包,进行func的分离而已。每每看到这样的代码心中不免唏嘘,各种设计模式仿佛只是添乱而已。
    最近才把继承问题理解的清晰一点点,特此分享给大家。

    单继承的多重继承,在这里插入图片描述典型的问题,继承层次繁多,混乱没有方向,继承树结构不对称。如何解决这样的混乱问题呢?

    1.父节点都是虚节点,不可以进行实例化。父节点定义子类行为规范,不可直接进行实例化todo。实际行为只能是最子节点 完成。
    2.继承树结构对称,层级高度一致,尽量不要超过三层。尽量新建根节点形成新树结构。
    3.子节点不可更改父节点内部逻辑,子节点代码多为初始化赋值操作,更像赋值配置文件而已。子节点的行为时有父节点决定的。
    在这里插入图片描述
    下边我们看看多继承的问题
    实际上是可以看出单继承问题的,多继承的有点是不言而喻的。在这里插入图片描述

    class f_a{}
    class child :f_a{
          void init(){
             //todo
          }
    }
    //子类去实现,父类不可实例化
    //子类多数只需要在init初始化变量即可,不要在代码写静态字符串 比如”网络错误“
    

    如果你把上图看出基本的多继承图形没问题,但是如果你把他看成组合式结构是不是仿佛看到了不一样的感觉呢?
    不错,如果我们把多继承问题使用组合结构的思想来解答,那多继承将会给我们带来不一样的编码体验,同时给与更高层次的抽象结构。我们定义不同抽象父类,同样父类不可实例化,只有子类才可以实例化去TODO。继承的层次同样不可过深。

    写代码就像画画一样
    class f_a{}
    class f_b{}
    class f_c{}
    class child :f_a,f_b,f_c{
          void init(){
             //todo
          }
    }
    //多继承可以更好做功能的颗粒化分离
    //单继承更多的是模块化分离,细粒度相比差一些
    
    展开全文
  • 单继承和多继承

    2021-01-22 15:05:30
    继承介绍及单继承 1.继承的概念 2.单继承示例 3.注意 “点” 多继承 1.多继承 2.多继承格式 3.注意点 继承介绍及单继承 1.继承的概念 生活中继承一般是指子继承父业,以下两图完美的诠释了继承如下: ...

    目录

    继承介绍及单继承

    1.继承的概念

    2.单继承示例

    3.注意 “点”

    多继承

    1.多继承

    2.多继承格式

    3.注意点

     

    继承介绍及单继承

    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()
    ##运行
    bs的名字为:印度猫
    bs的颜色为:白色
    印度猫--在吃
    波斯--在跑
    
    ######################################################################################
    说明:
    虽然子类没有定义__init__方法,但是父类有,所以在子类继承父类的时候这个方法就被继承了,所以只要创建Bosi的对象,就默认执行了那个继承过来的__init__方法
    小结:
    1--子类在继承的时候,在定义类时,小括号()中为父类的名字
    2--父类的属性、方法,会被继承给子类

    3.注意 “点”

    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 dogTest1(self):
            #print(self.__name) #不能访问到父类的私有属性
            print(self.color)
        def dogTest2(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()
    ####运行
    白色
    动物
    白色
    ------分割线-----
    黄色
    小花狗
    黄色
    • 私有的属性,不能通过对象直接访问,但是可以通过方法访问
    • 私有的方法,不能通过对象直接访问
    • 私有的属性、方法,不会被子类继承,也不能被访问
    • 一般情况下,私有的属性、方法都是不对外公布的,往往用来做内部的事情,起到安全的作用

    多继承

    1.多继承

    下图很生动的诠释多继承,哈哈哈,多继承就是子类有多个父类,并且具有他们的特性。

    2.多继承格式

    # 定义一个父类
    class A:
        def printA(self):
            print('----A----')
    # 定义一个父类
    class B:
        def printB(self):
            print('----B----')
    # 定义一个子类,继承自A、B
    class C(A,B):
        def printC(self):
            print('----C----')
    obj_C = C()
    obj_C.printA()
    obj_C.printB()
    ##运行
    ----A----
    ----B----
    ########################################################################################
    说明:
    python中是可以多继承的
    父类中的方法、属性,子类会继承

    3.注意点

    上面的多继承格式中,如果父类A和父类B中,有一个同名的方法,通过子类去调用的时候,可以查看C类的对象搜索方法时的先后顺序
    #coding=utf-8
    class base(object):
        def test(self):
            print('----base test----')
    class A(base):
        def test(self):
            print('----A test----')
    # 定义一个父类
    class B(base):
        def test(self):
            print('----B test----')
    # 定义一个子类,继承自A、B
    class C(A,B):
        pass
    obj_C = C()
    obj_C.test()
    print(C.__mro__) #可以查看C类的对象搜索方法时的先后顺序
    ##运行
    ----A test----
    (<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class '__main__.base'>, <class 'object'>)

     

    展开全文
  • 在程序中继承描述的是多个类之间的所属关系 如果一个类A里面的属性方法可以...单继承:子类只继承一个父类 多继承:子类继承多个父类 子类重写父类的同名属性方法 多层继承: 调用父类方法super() ...

    在程序中继承描述的是多个类之间的所属关系
    如果一个类A里面的属性和方法可以复用,则可以通过继承的方式,传递到类B里面。那么类A就是基类,也叫做父类;类B就是派生类,也叫做子类
    在这里插入图片描述
    单继承:子类只继承一个父类
    在这里插入图片描述
    多继承:子类继承多个父类
    在这里插入图片描述
    子类重写父类的同名属性和方法
    在这里插入图片描述
    多层继承:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    调用父类方法super()
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • /**  为了避免代码重复,就会用到继承(关键字extends),可以吧相同的行为... 多继承:是一个类可以有多个父类,(不支持多继承,都在会在调用的时候无法确定是调用哪个爹的方法)  单继承:一个类只能有一个父
  • java单继承和多继承

    千次阅读 2019-10-04 19:55:27
    java单继承和多继承 线程:一个子类只能继承自一个父类 多线程:一个子类可以继承自多个父类 java继承关键字extend和implement,Java所有子类都继承自 java.lang.Object,即java.lang.Object是Java的祖先类,当一...
  • java为什么单继承,单机和多继承各自特点
  • python⽀持单继承和多继承。 继承的优点: 可以简化代码,减少冗余度 提⾼了代码的可维护性 提⾼了代码的安全性 1.1 单继承 所谓的单继承就是⼀个⼦类只有⼀个⽗类。⼦类会继承⽗类所有的属性和⽅法。私有成员在⼦类...
  • 下面我将从继承实例(代码 ),继承...单继承 模型 代码class A { public: int _a; }; class B:public A { public: int _b; }; int main() { B b; b._a = 0; b._b = 1; return 0; }代码分析: 多继承 模型
  • 单继承多继承和方法重写 ** 单继承 class A: def aA(self): testA = 333; print(testA) # B是子类,A是父类 class B(A): def bB(self): testB = 222; s = A.aA(testB) print(s) tesB = B() tesB.bB() tesB....
  • Java_单继承和多继承

    2019-09-29 11:47:28
    1 /* 2 继承: 3 好处:提高了代码的复用性,让类与类之间产生了关系。 4 将对象中的共性内容不断的向上... 8 1,在Java中只能单继承多继承的机制被Java语言改良了(Java基于c语言,c支持多继承) 9 单继...
  • 为什么继承 面向对象编程的主要目的之一是提供可重用的代码。传统的C函数库通过预定义、预编译函数实现。C++通过类继承实现,累继承的大致功能: 可以在已有的类的基础上添加功能 可以添加数据 修改类方法的...
  • 一、单继承 单继承是一种 一个子类只有一个直接父类 的继承关系。 eg: ...二、多继承 ...多继承是一种 一个子类有两个或两个以上直接...显然,上例中Assistant类多继承了StudentTeacher两个类,而StudentTeache
  • 单继承 class A: def aA(self): testA = 333; print(testA) # B是子类,A是父类 class B(A): def bB(self): testB = 222; s = A.aA(testB) print(s) tesB = B() tesB.bB() tesB.aA() 多继承 class A: def...
  • 单继承 继承的概念 在现实生活中,继承一般是指子女继承父辈的财产 在程序当中,继承描述的是事物之间的所属关系,例如猫狗都属于动物,程序中便可以描述为猫狗继承自动物;同理,波斯猫巴厘猫都继承自猫,而...
  • 继承是代码复用的一种形式,即在具有包含关系的类中,从属类继承主类的全部属性方法,从而减少了代码冗余,提高了程序运行效率。例如,一个矩形(Rectangle类)属于四边形(Quadrilateral),正方形、平行四边形...
  • (1) 单继承 (2) 多继承 python所有的类都默认继承父类 object """ ### 单继承 #如果子类想调用父类私有的,要先在父类里面定义一个公有的,然后在公有的里面先调出私有,最后就可以间接的调出私有,不能在子类中定义...
  • 单继承和多继承的虚函数表

    千次阅读 2019-04-08 17:39:56
    前面两篇关于多态的博客已经详细介绍了多态的基础知识点和多态的底层实现原理,下面将主要介绍一下单继承和多继承的虚函数表~~~ 一、单继承中的虚函数表 首先来看一段代码: class Base { public: virtual void...
  • 继承介绍以及单继承 程序中的继承 在程序中,继承描述的是多个类之间的所属关系。...多继承可以继承多个父类,也继承了所有父类的属性方法 注意:如果多个父类中有同名的 属性方法,则默认使用第一个父类的
  • 今天我们重点讲解的是,python语言中的单继承和多继承。 继承概念: 如果一个类继承了另外一个类时,它将自动获得另一个类的所有属性和方法,那么原有的类称为父类,而新类称为子类。子类继承了其父类的所有属性和...
  • 类只能继承一个父类,但是可以实现多个接口(这个就可以理解为多继承了) 参考文章:https://www.cnblogs.com/smuxiaolei/p/9240767.html 继承的概念 继承就是子类继承父类的特征行为,使得子类对象(实例)具有父类...
  • maven的单继承和多继承

    千次阅读 2018-11-22 10:38:24
    单继承的两种方式 方式一: 1、父模块 account-aggregator 只显示主要部分 pom.xml < groupId > com.youzhibing.account groupId > < artifactId > account-aggregator artifactId > < version > ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,844
精华内容 3,537
关键字:

多继承和单继承