
上QQ阅读APP看书,第一时间看更新
6.3 范例——继承的应用
定义一个整型数组类,要求包含构造方法,增加数据及输出数据成员方法,并利用数组实现动态内存分配。在此基础上定义出以下子类:
(1)排序类—实现排序。
(2)反转类—实现数据反向存放。
分析:
本程序要求数组实现动态的内存分配,也就是说里面的数组的大小是由程序外部决定的,则在本类的构造方法中应该为类中的数组进行初始化操作,之后每次增加数据的时候都应该判断数组的内容是否是满的,如果不是满的,则可以向其中添加;如果是满的,则不能添加,另外,如果要添加数据的时候则肯定需要有一个指向可以插入的下标,用于记录插入的位置,如图6-8所示。

图6-8 数组的动态分配
【例6.14】实现反转及排序类

【例6.15】测试反转类

程序执行结果:

【例6.16】测试排序类

程序执行结果:

从上面的程序可以发现,虽然数组类产生了两个子类,但是各个子类最终取得全部内容的方法还是一样的,也就是说子类根据自己的需要覆写了父类中的方法,实际上在继承的关系中父类的设计是最重要的。