17 继承
子类对象在实例化之前必须首先调用父类中的构造方法,之后再调用子类自己的构造方法:
被子类覆写的方法不能拥有比父类方法更加严格的访问权限
关键字:this,extends,super
继承的应用实例:
定义一个整型数组类,要求包含构造方法,增加数据及输出数据成员方法,并利用数组实现动态内存分配。在此基础上定义出以下子类:
a.排序类----实现排序
b.反转类----实现数据方向存放
1 class Array{ // 表示数组 2 private int temp[] ; // 整型数组 3 private int foot ; // 定义添加位置 4 public Array(int len){ 5 if(len>0){ 6 this.temp = new int[len] ; 7 }else{ 8 this.temp = new int[1] ; // 最少维持空间是1个 9 } 10 } 11 public boolean add(int i){ // 增加元素 12 if(this.foot<this.temp.length){ // 还有空间 13 this.temp[foot] = i ; // 增加元素 14 this.foot ++ ;// 修改脚标 15 return true ; 16 }else{ 17 return false ; 18 } 19 } 20 public int[] getArray(){ 21 return this.temp ; 22 } 23 }; 24 class SortArray extends Array{ // 排序类 25 public SortArray(int len){ 26 super(len) ; 27 } 28 public int[] getArray(){ // 覆写方法 29 java.util.Arrays.sort(super.getArray()) ; // 排序操作 30 return super.getArray() ; 31 } 32 }; 33 class ReverseArray extends Array{ // 反转操作类 34 public ReverseArray(int len){ 35 super(len) ; 36 } 37 public int[] getArray() { 38 int t[] = new int[super.getArray().length] ; // 开辟一个新的数组 39 int count = t.length - 1 ; 40 for(int x=0 ;x<t.length;x++){ 41 t[count] = super.getArray()[x] ; // 数组反转 42 count-- ; 43 } 44 return t ; 45 } 46 }; 47 public class ArrayDemo{ 48 public static void main(String args[]){ 49 // ReverseArray a = null ; // 声明反转类对象 50 // a = new ReverseArray(5) ; // 开辟5个空间大小 51 SortArray a = null ; 52 a = new SortArray(5) ; 53 System.out.print(a.add(23) + "\t") ; 54 System.out.print(a.add(21) + "\t") ; 55 System.out.print(a.add(2) + "\t") ; 56 System.out.print(a.add(42) + "\t") ; 57 System.out.print(a.add(5) + "\t") ; 58 System.out.print(a.add(6) + "\t") ; 59 print(a.getArray()) ; 60 61 } 62 public static void print(int i[]){ // 输出数组内容 63 for(int x=0;x<i.length;x++){ 64 System.out.print(i[x] + "、") ; 65 } 66 } 67 };

浙公网安备 33010602011771号