实例:数组操作

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

基础父类代码如下:

 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 ;
}
}
public class Test1{
public static void main (String args[]){
Array arr = new Array(3);
System.out.println(arr.add(10)) ;
System.out.println(arr.add(20)) ;
System.out.println(arr.add(30)) ;
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]);
}
}
}

创建第一个子类,排序

 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 {
public SortArray(int len) {
super(len);
}
//因为父类中getData()不能排序,故此处采用覆写进行扩展
public int [] getData(){
java.util.Arrays.sort(super.getData()) ;
return super.getData() ;
}
}
public class Test1{
public static void main (String args[]){
SortArray arr = new SortArray(3);
System.out.println(arr.add(56)) ;
System.out.println(arr.add(77)) ;
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]);
}
}
}

创建第二个子类,反转

 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 {
public SortArray(int len) {
super(len);
}
//因为父类中getData()不能排序,故此处采用覆写进行扩展
public int [] getData(){
java.util.Arrays.sort(super.getData()) ;
return super.getData() ;
}
}
//定义一个反转数组的子类
class ReverseArray extends Array{
public ReverseArray(int len) {
super(len );
}
public int [] getData() {
int center = super.getData().length / 2 ;
int head = 0 ;
int tail = super.getData().length - 1 ;
for (int x = 0; x < center ; x ++ ){
int temp = super.getData()[head] ;
super.getData()[head] = super.getData()[tail] ;
super.getData()[tail] = temp ;
head ++ ;
tail -- ;
}
return super.getData() ;
}
}
public class Test1{
public static void main (String args[]){
ReverseArray arr = new ReverseArray(3);
System.out.println(arr.add(56)) ;
System.out.println(arr.add(77)) ;
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]);
}
}
}

JAVA继承与覆写的更多相关文章

  1. java继承与覆写小练习

    最近学习java到了继承的部分,写个小程序用以巩固. import java.util.Scanner;//导入输入包public class testfather { public static v ...

  2. 黑马程序员——JAVA基础之简述 类的继承、覆写

    ------- android培训.java培训.期待与您交流! ---------- 继承的概述: 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只 ...

  3. 隐身衣揭秘--java中继承/隐藏/覆写

    故事背景 看过<哈利·波特>的娃们,想必一定还记得电影中的“隐形斗篷”..这件隐形衣是哈利收到的圣诞礼物,也是死亡圣器中的三件套之一,它让哈利小盆友在执行任务的过程中简直是如虎添翼! 其实 ...

  4. 7.JAVA-类继承、覆写、final关键字

    1.JAVA继承-extends 在java中,要想实现继承则使用extends关键字. 一般子类被称为派生类,父类称为基类(super) extends需要注意的地方: java不允许多重继承(一个 ...

  5. java重载与覆写

    很多同学对于overload和override傻傻分不清楚,建议不要死记硬背概念性的知识,要理解着去记忆. 先给出我的定义: overload(重载):在同一类或者有着继承关系的类中,一组名称相同,参 ...

  6. [改善Java代码]不要覆写静态方法

    建议33: 不要覆写静态方法 我们知道在Java中可以通过覆写(Override)来增强或减弱父类的方法和行为,但覆写是针对非静态方法(也叫做实例方法,只有生成实例才能调用的方法)的,不能针对静态方法 ...

  7. [改善Java代码]推荐覆写toString方法

    建议49: 推荐覆写toString方法 为什么要覆写toString方法,这个问题很简单,因为Java提供的默认toString方法不友好,打印出来看不懂,不覆写不行,看这样一段代码: public ...

  8. 菜鸡的Java笔记 第二十 - java 方法的覆写

    1.方法的覆写    当子类定义了与父类中的完全一样的方法时(方法名称,参数类型以及个数,返回值类型)这样的操作就称为方法的覆写    范例:观察方法的覆写 class A{ public void ...

  9. JAVA中继承时方法的重载(overload)与重写/覆写(override)

    JAVA继承时方法的重载(overload)与重写/覆写(override) 重载-Override 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就 ...

随机推荐

  1. rsa 签名 加密解密

    A->B 签名 ==========================A方+A方的私钥 => B收到后 用A方的公钥 验证签名 ==========================A-> ...

  2. linux 批量kill进程

    ps -ef | grep module- | grep -v module-mxm | cut -c 9-15 | xargs kill -9 ps -ef | grep module- 查找关键字 ...

  3. jQuery UI Datepicker

    http://www.runoob.com/try/try.php?filename=jqueryui-example-datepicker-dropdown-month-year <!doct ...

  4. Linux压缩和解压汇总

    各种后缀的压缩包压缩方法和解压方法 压缩包 压缩 解压 .tar.gz和.tgz tar -czf jpg.tar.gz *.jpg tar -xzvf filename -C path .tar.b ...

  5. SystemErrorCodes

    有人把SystemErrorCodes整理成了类,并定义了方法,用于返回消息,他大概不知道FormatMessage的用法,放在这里做参考吧 C# code snipppet class System ...

  6. php5.2.3连接sqlserver2008

    1,下载驱动 下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=20098 我下载的是:SQLSRV20.EXE ,因为我的p ...

  7. Windows phone 8.1布局控件

    布局控件(4种  第一种) Grid:相当于 HTML 中的 Table 标签,但是注意 Table 更重要的是展示数据,   而 Grid 则是专门为布局所生 属性标记: Grid.RowDefin ...

  8. Myeclipse Templates详解(一) —— Java模板基础

    目录 Templates简介 MyEclipse自带Templates详解 新建Template 自定义Template 因为自己比较懒,尤其是对敲重复代码比较厌恶,所以经常喜欢用快捷键和模板,Mye ...

  9. Git版本控制管理学习笔记1-介绍

    几乎所有的版本控制工具都是出于同样的目的:开发以及维护开发出来的代码,方便读取代码的历史,记录所有的修改.这里,介绍的是当前在开源社区内非常流行的版本控制工具Git.它是由Linus Torvalds ...

  10. 3D场景定位的一些资源

    利用多张影像对小物体进行拍摄,进而进行三维重建,是计算机视觉中的重要问题之一. 目前对此研究最全面的网站是:http://vision.middlebury.edu/mview/eval/ 目前最优秀 ...