• 面向对象设计思想大图


    说明:项目很重要,学项目比学知识点进步大,但也要难度大些;把经典的东西不停地重复;人在集体中进步得快些,另外,代码不是一蹴而就的,都是不断地迭代的。

    1.继承也是一种的抽象,是超类将派生类属性抽象出来放到构造器中,此时超类可以将派生类的属性抽象出来分为多个构造器,

    构造器的分类可以遵循某些原则,如各个派生属性的异同和个数。


    2.派生类继承超类过程中,首先派生类可以调用超类的构造器,并用在派生类中的构造器用super给其对应的超类赋值,同时也是给自己赋值,

    另外,派生类中还可以有其特的属性和方法,而超类中的参数列表可以接受测试类的传参。

     3.其实,派生类在构造器中也可以调用超类构造器,给超类赋值。

    ----------------------------------------------------------------------------------------------------------                     

                                                                    抽象超类

                                                                (派生类公有属性)

                                                                (构造器1,2...n)

                                                                (普通方法)

                                                                (抽象方法)

                                                                        |

                                                                        |

                |   ------------------------------------------| ------------------------------------------------

                |                                                       |                                                             |

                |                                                       |                                                             |

        派生类1                                              派生类2                                                       派生类n

     (特有私有属性)                            (特有私有属性)                                          (特有私有属性)

    (加载当前类的静态资源)               (加载当前类的静态资源)                           (加载当前类的静态资源)

     (构造器1,super)                                (构造器2,super)                                      (构造器n,super)

     (重写超类抽象方法)                            (重写超类抽象方法)                                     (重写超类抽象方法)            

        (普通方法)                                       (普通方法)                                                      (普通方法)          

                |                                                       |                                                                |                                                     

                |                                                       |                                                                |

                |   ---------------------------------------- | -----------------------------------------------

                |                       |                               |                                  |                             |

                |                       |                               |                                  |                             |

                |                       |                               |                                  |                             |

                |                    接口a                                                          接口n                           |

                |                                                       |                                                               |

                |  -----------------------------------------|-------------------------------------------------|  

                                                                        |

                                                                        |

                                                                 公共入口类

                                                        (定义当前类特有属性)

                                                           (创建实例对象)

                                                             (公有方法)

                                                 (某公有方法a,并包装其余方法)

                                                    (main启动类,调用公有方法a)

    --------------------------------------------------------------------------------------------------------------------------

    说明:

             超类,是对派生类的一种抽象。把其中的共有属性抽出来,并把公有方法抽出来,这些都定义在超类当中,其中某些方法若派生类有不同实现,则应该定义为抽象方法,所以此类此时也应该定义为抽象类。另外,对于构造器,它是在创建对象时被调用,而参数和构造器的重载的写法是根据派生类的属性来的。所以,从设计的角度来看,是先有派生类,再由超类的,但是写的时候,是先写超类,再写派生类;

            派生类,定义特有的、私有的属性,而公有的属性直接在构造器中用super调用超类的属性即可。用static块加载静态资源,如图片。重写超类的抽象方法,并直接调用某些普通方法,还有些方法是特有的,被用来类与类之间相互调用。

            接口,其中对于部分派生类若存在某些共有的方法,则可以定义为接口,并将其写为抽象方法,这样利于后期的维护和扩展,然后派生类实现超类的方法即可。

            公共入口类,先创建派生类的对象,然后根据实际需求写公共方法,并封装一个方法a,而这个方法a其中包含其它超类的主要方法,然后在main方法中调用该方法a。

     

                                                      

                                      

    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    cookie处理函数练习(为我所写,非我所想:改善面向对象)
    TypeScript的4种编译方式
    如何调用外部的Web API
    Json to JObject转换的使用方法
    Json.NET读取和写入Json文件
    XTemplate语法基础
    node.js xtemplate的使用实例
    node.js express安装及示例网站搭建
    各大互联网公司前端面试题(HTML/CSS)
    各大互联网公司前端面试题
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/10134447.html
Copyright © 2020-2023  润新知