Java 继承与覆写功能的实现

Java 继承与覆写功能的实现

下面这个代码,首先满足以下几个条件:

  • 绝对不改变客户端已有的使用方法。
  • 子类为了要维持方法功能的持续完善,所以必须要根据实际情况进行父类方法的覆写
  • 要求定义一个数组操作类(Array类),在这个类里面,可以进行整型数组的操作,由外部传入数组的大小,并要求实现数据保存,以及数据的输出,随后在这个类上要求派生出一个子类:
  • 排序类:通过此类取得数据可以排序,代码如下:
    (使用方法:将代码用记事本保存,名字为TestDemo.java,切记修改后缀为 *.java 的文件,win+R输入cmd,再里面找到你存放TestDemo.java的文件夹,假如你把TestDemo.java文件放到了F盘中的testdemo的文件夹里面,在cmd中输入 F: 点击确定,你进入F盘,再输入 cd testdemo 再点击确定,你就进入testdemo文件夹里面,需要先编译,再执行哟!!!)
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) {
       //这样父类中的数组就可以初始化
      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(10)) ;
   System.out.println(arr.add(2)) ;
   System.out.println(arr.add(29)) ;
   System.out.println(arr.add(100)) ;
   System.out.println(arr.add(200)) ;
   int [] temp = arr.getData() ;
   for (int x = 0;x < temp.length ;x ++ ) {
       System.out.println(temp[x]) ;
   }
   }
}

总结:在代码的开发中,继承和覆写的功能经常出现,也是很重要的,只有在父类功能足够完善的情况下,子类再对其进行继承和覆写,效果才是最好的!

  • 子类的功能就是根据特殊情况,进行父类功能的扩充。
  • 子类扩充方法的时候尽量以父类定义的方法名称为主,可以根据实际情况进行方法的覆写。
点赞