java中类的组合机制

             经过课堂学习,了解了类的组合机制,之前只是介绍过java中类的继承,忽略了类的组合,今天补上。

          在java中如果一个类A中有你想要调用的方法,在你新建一个类B时,可以将想要用的类A的对象引用作为数据成员,就可以将类B看作是由类A组合而成的。

          以一个具体的例子,解释一下:

                       这个例子就是想创建一个类A,A有一个发射的方法,而已知的类FighterPlane有这个方法,所以就想用现成的方法,用到类的组合。目的是A的对象可以调用FighterPlane的方法,所以A类里面必须有一个FighterPlane对象的引用类型的数据成员,之后进行这个数据成员的初始化,要让它和一个FighterPlane的对象关联起来,即需要给A类的构造方法里传入实参,进行初始化。FighterPlane ftp = new FighterPlane("su35",10);这时产生了一个FighterPlane的对象和指向此对象的引用,之后 A  a   = new A(ftp); 则完成了A中的fp的初始化,A类的对象可以调用FighterPlane的方法了。

                   其实本质上就是A类的数据成员的数据类型比较特殊,但是同简单数据类型一样,也是进行初始化。另外,讲讲类的组合的优点,类的组合使用的是对象的引用,可以和不同的对象关联,但是在类的继承时,子类继承了父类所有的数据成员和方法,很笨重。因此尽量用组合,少用继承。

                                                               

                                                            

原文地址:https://www.cnblogs.com/Wangjiaq/p/8618950.html