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 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就 ...
随机推荐
- sql server 2008 数据的行转列
create table tb(id int, value varchar(10)) insert into tb values(1,'aa') insert into tb values(1,'bb ...
- linux 批量kill进程
ps -ef | grep module- | grep -v module-mxm | cut -c 9-15 | xargs kill -9 ps -ef | grep module- 查找关键字 ...
- IEnumerable和IEnumerable<T>接口
IEnumerable和IEnumerable<T>接口 IEnumerable和IEnumerable<T>接口在.NET中是非常重要的接口,它允许开发人员定义foreach ...
- poj 3468(线段树)
http://poj.org/problem?id=3468 题意:给n个数字,从A1 …………An m次命令,Q是查询,查询a到b的区间和,c是更新,从a到b每个值都增加x.思路:这是一个很明显的线 ...
- vim 使用
vim有三种模式:输入模式,命令模式,底行模式,使用esc进入命令模式,在命令模式下按英文的冒号,进入底行模式:命令行模式下按i进入输入模式.vim编辑文件是将文件内容复制到缓冲区显示在屏幕上. vi ...
- Java 8相关
语言生态系统中的所有语言都有优胜劣汰的压力.虽然Java语言当前还在健康发展,但是保不定哪天就完蛋了. Java8增加的新特性从根本上来说是为了提高搬砖的姿势和效率. 多核编程的更好支持. 方法成为一 ...
- ASP.NET4.5Web API及非同步程序开发系列(1)
认识非同步程序开发设计模型 从VS2012开始引入的新的非同步程序设计的支持-------async/await设计模型 之前的当我们支持非同步作业的时候,往往使用多线程开解决,我们比较熟悉的就是 执 ...
- 在SQL SERVER中实现RSA加解密函数(第二版)
/*************************************************** 作者:herowang(让你望见影子的墙) 日期:2010.1.5 注: 转载请保留此信息 更 ...
- 打造自己的php动态连接库文件
http://blog.163.com/weibin_li/blog/static/1901464172012325115517181/
- ViewPager图片切换的简单案例
1)ViewPager类直接继承了ViewGroup类,所有它是一个容器类,可以在其中添加其他的view类. 2)ViewPager类需要一个PagerAdapter适配器类给它提供数据. 向右滑动切 ...