面向对象设计思想大图

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

 

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。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                  

                                  

posted @ 2018-12-17 22:37  贰零一八  阅读(181)  评论(0编辑  收藏  举报