UML之泛化关系

在学习UML的时候,我想起来了《大话设计模式》这里边的一张类图,把我给整懵了,脑袋里出现了好几个问号:
1.到底什么是泛化(继承)关系?
2.如何用图精确表现泛化关系呢?
如果您感觉写的不错,请点个赞,给个评论!

第一部分:常规解释下的泛化关系

    『泛化关系是类元的一般描述和具体描述之间的关系,具体描述建立在一般描述的基础之上,并对其进行了扩展。具体描述完全拥有一般描述的特性、成员和关系, 并且包含补充的信息。例如,抵押是借贷中具体的一种,抵押保持了借贷的基本特性并且加入了附加的特性,如房子可以作为借贷的一种抵押品。』


    举个例子:
UML之泛化关系_第1张图片作者原创,转载请注明出处。

1.有线入耳式耳机和无线入耳式耳机,都属于入耳式耳机。
2.有线入耳式耳机和无线入耳式耳机,都会有『播放音乐』和『降低噪音』两个功能。
3.父类是入耳式耳机,子类是无/有线入耳式耳机。
    
    
    
    

第二部分:关于泛化关系的疑问和解析

关于这个常规解释,我有几个地方不能理解,与大家分享:
问题1:子类要继承父类的全部属性和方法吗?
问题2:如上图,无线入耳式耳机的方法栏为什么不加上父类的全部方法,而只加上了『播放音乐』这一个方法?


问题1解答:
    除了父类的私用属性,以及父类的struct结构,其他都要继承。(作者目前的理解)

问题2解答:
    如果子类继承父类方法的实现方式没有变化(不需要重写),那么不需要特别指出来。
    如果实现方式有变化(需要重写),那么就需要将父类的方法写在子类的方法栏中。
    换一种说法就是,如果继承(即泛化)的过程,出现多态的情况,那么就需要将父类的方法写在子类的方法栏中,否则不写。


Thanks for your reading!

你可能感兴趣的:(用心之作,UML)