class Array{
private int data[]; // 定义一个数组
private int foot ; // 数组的操作脚标
public Array(int len){ // 构造本类对象时需要数组长度
if(len > 0){
this.data = new int [len]; // 开辟一个数组
}else{
this.data = new int [1]; // 维持一个元素的大小
}
}
public boolean add(int num){
if(this.foot < this.data.length){ // 有空间保存数据
this.data[this.foot++] = num; // 保存数据
return true; // 保存成功
}
return false; // 保存失败
}
public int [] getData(){
return this.data;
}
}
// 定义一个排序数据的子类
class SortArray extends Array{
// Array里面没有无参构造方法
public SortArray(int len){
// 这样父类中的data数组就可能初始化
super(len); //明确调用父类的有参构造
}
// 因为父类中getData()方法不多当前类使用,但能需要保留此方法
// 使用覆写的概念来将此方法的功能扩充
public int [] getData(){
java.util.Arrays.sort(super.getData()); // 排序
return super.getData();
}
}
public class testDemo{
public static void main(String args[]){
SortArray arr = new SortArray(3);
System.out.println(arr.add(100));
System.out.println(arr.add(20));
System.out.println(arr.add(19));
int [] temp = arr.getData();
for (int i=0; i<temp.length;i++){
System.out.println(temp[i]);
}
}
}
在这个程序中,我们的思路:
绝不改变客户端已有的使用方法
子类现在为了要维持方法的功能继续完善,所以必须要根据情况对父类方法覆写
原文:https://www.cnblogs.com/anyux/p/11903835.html