JAVA继承与覆写

实例:数组操作

首先是开发一个整型数组父类,要求从外部控制数组长度,并实现保存数据以及输出。然后子类中实现排序和反转。

基础父类代码如下:

 1 class Array {
 2     private int data [] ;
 3     private int foot ;
 4     public Array(int len ) {
 5         if (len > 0 ) {   //至少有元素
 6             this.data = new int [len] ;
 7         } else {
 8             this.data = new int [1] ;
 9         }
10     }
11     public boolean add(int num ){
12         if (this.foot < this.data.length){  //有空间
13             this.data[this.foot ++] = num ; //保存数据
14             return true ;    //保存成功
15         }
16         return false ;       //保存失败
17     }
18     public int [] getData(){
19         return this.data ;
20     }
21 }
22 public class Test1{
23     public static void main (String args[]){
24         Array arr = new Array(3);
25         System.out.println(arr.add(10)) ;
26         System.out.println(arr.add(20)) ;
27         System.out.println(arr.add(30)) ;
28         System.out.println(arr.add(100)) ;
29         System.out.println(arr.add(200)) ;
30         int [] temp = arr.getData() ;
31         for (int x = 0 ; x < temp.length ; x++ ){
32             System.out.println(temp[x]);
33         }
34     }
35 }

 创建第一个子类,排序

 1 class Array {
 2     private int data [] ;
 3     private int foot ;
 4     public Array(int len ) {
 5         if (len > 0 ) {   //至少有元素
 6             this.data = new int [len] ;
 7         } else {
 8             this.data = new int [1] ;
 9         }
10     }
11     public boolean add(int num ){
12         if (this.foot < this.data.length){  //有空间
13             this.data[this.foot ++] = num ; //保存数据
14             return true ;    //保存成功
15         }
16         return false ;       //保存失败
17     }
18     public int [] getData(){
19         return this.data ;
20     }
21 }
22 //定义一个排序数组的子类
23 class SortArray extends Array {
24     public SortArray(int len) {
25         super(len);
26     }
27     //因为父类中getData()不能排序,故此处采用覆写进行扩展
28     public int [] getData(){
29         java.util.Arrays.sort(super.getData()) ;
30         return super.getData() ;
31     }
32 }
33 public class Test1{
34     public static void main (String args[]){
35         SortArray arr = new SortArray(3);
36         System.out.println(arr.add(56)) ;
37         System.out.println(arr.add(77)) ;
38         System.out.println(arr.add(29)) ;
39         System.out.println(arr.add(100)) ;
40         System.out.println(arr.add(200)) ;
41         int [] temp = arr.getData() ;
42         for (int x = 0 ; x < temp.length ; x++ ){
43             System.out.println(temp[x]);
44         }
45     }
46 }

创建第二个子类,反转

 1 class Array {
 2     private int data [] ;
 3     private int foot ;
 4     public Array(int len ) {
 5         if (len > 0 ) {   //至少有元素
 6             this.data = new int [len] ;
 7         } else {
 8             this.data = new int [1] ;
 9         }
10     }
11     public boolean add(int num ){
12         if (this.foot < this.data.length){  //有空间
13             this.data[this.foot ++] = num ; //保存数据
14             return true ;    //保存成功
15         }
16         return false ;       //保存失败
17     }
18     public int [] getData(){
19         return this.data ;
20     }
21 }
22 //定义一个排序数组的子类
23 class SortArray extends Array {
24     public SortArray(int len) {
25         super(len);
26     }
27     //因为父类中getData()不能排序,故此处采用覆写进行扩展
28     public int [] getData(){
29         java.util.Arrays.sort(super.getData()) ;
30         return super.getData() ;
31     }
32 }
33 //定义一个反转数组的子类
34 class ReverseArray extends Array{
35     public ReverseArray(int len) {
36         super(len );
37     }
38     public int [] getData() {
39         int center = super.getData().length / 2 ;
40         int head = 0 ;
41         int tail = super.getData().length - 1 ;
42         for (int x =  0; x < center ; x ++ ){
43             int temp = super.getData()[head] ;
44             super.getData()[head] = super.getData()[tail] ;
45             super.getData()[tail] = temp ;
46             head ++ ;
47             tail -- ;
48         }
49         return super.getData() ;
50     }
51 }
52 public class Test1{
53     public static void main (String args[]){
54         ReverseArray arr = new ReverseArray(3);
55         System.out.println(arr.add(56)) ;
56         System.out.println(arr.add(77)) ;
57         System.out.println(arr.add(29)) ;
58         System.out.println(arr.add(100)) ;
59         System.out.println(arr.add(200)) ;
60         int [] temp = arr.getData() ;
61         for (int x = 0 ; x < temp.length ; x++ ){
62             System.out.println(temp[x]);
63         }
64     }
65 }

posted @ 2016-07-06 18:37  蒋立  阅读(289)  评论(0编辑  收藏  举报