JAVA继承与覆写
实例:数组操作
首先是开发一个整型数组父类,要求从外部控制数组长度,并实现保存数据以及输出。然后子类中实现排序和反转。
基础父类代码如下:
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继承与覆写的更多相关文章
- java继承与覆写小练习
最近学习java到了继承的部分,写个小程序用以巩固. import java.util.Scanner;//导入输入包public class testfather { public static v ...
- 黑马程序员——JAVA基础之简述 类的继承、覆写
------- android培训.java培训.期待与您交流! ---------- 继承的概述: 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只 ...
- 隐身衣揭秘--java中继承/隐藏/覆写
故事背景 看过<哈利·波特>的娃们,想必一定还记得电影中的“隐形斗篷”..这件隐形衣是哈利收到的圣诞礼物,也是死亡圣器中的三件套之一,它让哈利小盆友在执行任务的过程中简直是如虎添翼! 其实 ...
- 7.JAVA-类继承、覆写、final关键字
1.JAVA继承-extends 在java中,要想实现继承则使用extends关键字. 一般子类被称为派生类,父类称为基类(super) extends需要注意的地方: java不允许多重继承(一个 ...
- java重载与覆写
很多同学对于overload和override傻傻分不清楚,建议不要死记硬背概念性的知识,要理解着去记忆. 先给出我的定义: overload(重载):在同一类或者有着继承关系的类中,一组名称相同,参 ...
- [改善Java代码]不要覆写静态方法
建议33: 不要覆写静态方法 我们知道在Java中可以通过覆写(Override)来增强或减弱父类的方法和行为,但覆写是针对非静态方法(也叫做实例方法,只有生成实例才能调用的方法)的,不能针对静态方法 ...
- [改善Java代码]推荐覆写toString方法
建议49: 推荐覆写toString方法 为什么要覆写toString方法,这个问题很简单,因为Java提供的默认toString方法不友好,打印出来看不懂,不覆写不行,看这样一段代码: public ...
- 菜鸡的Java笔记 第二十 - java 方法的覆写
1.方法的覆写 当子类定义了与父类中的完全一样的方法时(方法名称,参数类型以及个数,返回值类型)这样的操作就称为方法的覆写 范例:观察方法的覆写 class A{ public void ...
- JAVA中继承时方法的重载(overload)与重写/覆写(override)
JAVA继承时方法的重载(overload)与重写/覆写(override) 重载-Override 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就 ...
随机推荐
- Unity3D NGUI动态生成模糊背景图
先上效果. 制作原理:模糊的部分是用UITexture,前面是一个UISprite.用主摄像机渲染出一张纹理,把这张纹理模糊处理,把这张纹理赋值给UITexture. 脚本代码 using Unity ...
- 1.go的Hello
新建hello.go 内容: package main import ( "fmt" ) func main() { fmt.Println("Hello liuyao& ...
- mysql时间段内查询
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...
- [Android Pro] ScrollView使用fillViewport设置高度为MatchParent
reference to : http://blog.csdn.net/u012975705/article/details/49275001 之前遇到一问题,就是当使用ScrollView时,Scr ...
- VR技术的系统化实现阶段
转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 从20世纪80年代至80年代中期,虚拟现实技术的基本概念开始逐渐形成和完善.这一时期出现了一些比较经典的 ...
- PHP获取当前url路径的函数及服务器变量:QUERY_STRING、REQUEST_URI、SCRIPT...
1,$_SERVER["QUERY_STRING"]说明:查询(query)的字符串 2,$_SERVER["REQUEST_URI"]说明:访问此页面所需的U ...
- 【Java EE 学习 16 下】【dbutils的使用方法】
一.为什么要使用dbutils 使用dbutils可以极大程度的简化代码书写,使得开发进度更快,效率更高 二.dbutils下载地址 http://commons.apache.org/proper/ ...
- WPF中的动画——(三)时间线(TimeLine)
WPF中的动画——(三)时间线(TimeLine) 时间线(TimeLine)表示时间段. 它提供的属性可以让控制该时间段的长度.开始时间.重复次数.该时间段内时间进度的快慢等等.在WPF中内置了如下 ...
- android--gradle编译龟速?offline!
- 未能添加对***.dll的引用问题
在机器A上运行.编译成功的程序,在B上不能正确被编译,并且添加r如 knbook.dll 时候提示如下: 未能添加对"knbook.dll"引用,请确保此文件可以访问并且是一个有效 ...