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 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就 ...
随机推荐
- ToolStripMenuItem
MenuStrip 类 为窗体提供菜单系统. 继承层次结构 System.Object System.MarshalByRefObject System.ComponentModel.Comp ...
- python之路九
paramiko paramiko模块是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 ssh执行命令: import paramikossh = pa ...
- 【Maven】运行项目
1.run as maven clean 清除原有的编译结果重新编译一次. 2.run as maven bulid.. goals:package tomcat7:deploy 打包到Tomcat7 ...
- jquery之toggleClass应用
今天记载一下常用的html + css + jquery效果应用 1.html内容 <div class="selBtn screen_btn"> <a id=& ...
- LVS集群之NAT模式实现
LVS集群之NAT模式实现 一.集群的种类 集群系统主要分为 1.HA:高可用集群,又叫双机热备. (a)原理 2台机器A,B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至 ...
- mongoosejs学习地址
http://mongoosejs.com/docs/api.html#querystream-js Node的小基友supervisor 和 forever 不要忘记了,相信你会喜欢他们的:) ht ...
- caffe初试(一)happynear的caffe-windows版本的配置及遇到的问题
之前已经配置过一次caffe环境了: Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境 但其中也提到,编译时,用到了cuda6.5,但 ...
- 事务日志以及虚拟日志文件(VLFs)概述
Part 1:事务日志 每个 SQL Server 数据库都具有事务日志,用于记录所有事务以及每个事务对数据库所做的修改.必须定期截断事务日志以避免它被填满.但是,一些因素可能延迟日志截断,因此监视日 ...
- C# 执行文件的根目录 (转)
1.取得控制台应用程序的根目录方法 方法1.Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径方法2.AppDomain.CurrentDomain.Bas ...
- 反射 + 抽象工厂模式切换DB数据源(附Demo)
首先,设计模式的文章源自于程杰的<大话设计模式>这本书,这本书个人感觉很适合我,看着不累,能够安安心心的阅读学习.在这里十分感谢程杰的这本书,我博文中的例子会根据书上的例子来.为了不侵犯这 ...