实例:数组操作

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

基础父类代码如下:

 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. Linux pthread

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <pthread.h& ...

  2. 关于git的简单实用命令

    时代在进步啊,现在已经不是svn的时代了,好多人都在使用git.所以自己也稍微学习了下git的使用. 常见的通过git提交代码步骤: git status :查看文件状态 :该命令显示你工程内修改的所 ...

  3. C# mongodb 驱动操作(Z)

    Query.All("name", "a", "b");//通过多个元素来匹配数组 Query.And(Query.EQ("nam ...

  4. Ubuntu设置环境变量 16.04

    打开终端并输入: sudo gedit /etc/environment. 2 输入用户密码.这时输入的密码是不可见的. 3 如图,在PATH="...."的末尾处添加: :/op ...

  5. c/c++字符串定义及使用的对比

    c/c++中使用字符串的频率还是比较高的,下面就字符串的不同定义及其使用方法做一些对比 字符串一般有以下三种定义方法: 1.char *p="hello"; 2.char str[ ...

  6. yii框架中验证器声明一组内置验证器可以使用短名称引用

    1.内置验证器的短名称分别有: boolean: yii\validators\BooleanValidator captcha: yii\captcha\CaptchaValidator compa ...

  7. iOS 运行时

    1.点击每一个cell都要跳转到一个控制器,swich会很麻烦,那么可以用运行时来进行跳转. a. 定义一个数组用来存放控制器的名字 - (NSArray *)controllerArr{ if (_ ...

  8. python入门一

    python类型 编程语言主要从以下几个角度为进行分类,编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言. 编译型和解释型 编译型:在程序执行之前,有一个单独的编译过程,将程序翻译成 ...

  9. 【CentOS】ifconfig命令 :command not found & yum命令 :cannot find a valid baserl for repo: base/7/x86_64

    第一课,学习的是安装linux的远程连接.相信看阿铭视频的朋友们都会知道,第一个开机输入完root后要敲的命令就是--ifconfig 非常幸运,这迎来了我的第一个问题 这时候你会选择百度,会搜索到这 ...

  10. Python爬虫学习(5): 简单的爬取

    学习了urllib,urlib2以及正则表达式之后就可以做一些简单的抓取以及处理工作.为了抓取方便,这里选择糗事百科的网页作为抓取对象. 1. 获取数据: In [293]: url = " ...