java继承总结_JAVA笔记:Java中的继承总结

继承:在Java中使用extends关键字来实现类的继承  ,extends意思就是派生,所以子类也叫派生类,继承的主要目的是扩展类的内容

操作格式: class A{}; class B extends A{};

子类B可以继承父类A中的公用方法,也可以扩展自己的方法

示例代码:

package OOP2;

class Person{

private String name;

private int age;

public void setName(String name){

this.name = name;

}

public void setAge(int age){

this.age = age;

}

public String getName(){

return this.name;

}

public int getAge(){

return this.age;

}

};

class Student extends Person{

private String school;

public void setSchool(String school){

this.school = school;

}

public String getSchool(){

return this.school;

}

};

public class extendsOne {

public static void main(String[] args) {

// TODO Auto-generated method stub

Student stu = new Student();

stu.setName("李帅");

stu.setAge(20);

stu.setSchool("霍格沃茨");

System.out.println("名字:"+stu.getName()+","+"年龄"+stu.getAge()+","+"学校:"+stu.getSchool());

}

}

继承的限制:Java中只允许单继承,意思就是一个子类只能继承一个父类,一个孩子只能有一个亲爸

但是可以进行多层继承,意思就是父类还可以有父类

访问限制:在父类中的私有成员不能被子类访问,所以通过setter 和getter方法供子类访问父类中的非私有方法。

在Java机制中,首先执行父类中的内容,再执行子类中的内容,即没有父亲就没有孩子,对于子类的构造方法中,隐含了super();,所以有时也将父类称为超类。

方法的覆写:在继承的关系中也存在方法的覆写,即子类中覆写父类中的方法。但是被子类覆写的方法不能拥有比父类更低的访问权限。 目前接触的权限有:private

如果子类中的方法权限实在低于父类中的权限,只能通过super的方法来实现,实例如下:

class Person{// 定义父类

void print(){// 默认的访问权限

System.out.println("Person --> void print()。") ;

}

};

class Student extends Person{// 定义继承关系

public void print(){

super.print() ;// 访问父类中被子类覆写过的方法

System.out.println("Student --> void print()。") ;

}

};

public class OverrideDemo03{

public static void main(String args[]){

Student s = new Student() ;

s.print() ;

}

};

研究此问题意义不大。

方法重载和覆写的区别:

030dda7e0228a6d3380ee4bfc3be4157.png

super关键字

super关键字的作用是在子类中调用父类的指定操作,例如:调用属性、方法、构造等。

但在子类中要调用父类的有参构造,必须要声明参数,super(参数,参数)

bba8d3e40b665a08ed2080425b380fb2.png

继承的应用:

实例:定义一个整形数组类,要求包含构造方法,增加数据及输出数据成员方法,并利用数组实现动态内存分配,在此基础上定义出以下子类:

A:排序类,实现数组的排序

B:数组反转类,实现数据的反向存放

代码:

class Array{// 表示数组

private int temp[] ;// 整型数组

private int foot ;// 定义添加位置

public Array(int len){

if(len>0){

this.temp = new int[len] ;

}else{

this.temp = new int[1] ;// 最少维持空间是1个

}

}

public boolean add(int i){// 增加元素

if(this.foot

this.temp[foot] = i ;// 增加元素

this.foot ++ ;// 修改脚标

return true ;

}else{

return false ;

}

}

public int[] getArray(){

return this.temp ;

}

};

class SortArray extends Array{// 排序类

public SortArray(int len){

super(len) ;

}

public int[] getArray(){// 覆写方法

java.util.Arrays.sort(super.getArray()) ;// 排序操作

return super.getArray() ;

}

};

class ReverseArray extends Array{// 反转操作类

public ReverseArray(int len){

super(len) ;

}

public int[] getArray() {

int t[] = new int[super.getArray().length] ;// 开辟一个新的数组

int count = t.length - 1 ;

for(int x=0 ;x

t[count] = super.getArray()[x] ;// 数组反转

count-- ;

}

return t ;

}

};

public class ArrayDemo{

public static void main(String args[]){

// ReverseArray a = null ;// 声明反转类对象

// a = new ReverseArray(5) ;// 开辟5个空间大小

SortArray a = null ;

a = new SortArray(5) ;

System.out.print(a.add(23) + "\t") ;

System.out.print(a.add(21) + "\t") ;

System.out.print(a.add(2) + "\t") ;

System.out.print(a.add(42) + "\t") ;

System.out.print(a.add(5) + "\t") ;

System.out.print(a.add(6) + "\t") ;

print(a.getArray()) ;

}

public static void print(int i[]){// 输出数组内容

for(int x=0;x

System.out.print(i[x] + "、") ;

}

}

};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java正则表达式 类_java正则表达式相关类的使用

import java.util.regex.Matcher;import java.util.regex.Pattern;public class TestZhengZe {public static void main(String[] args) {//匹配数字Pattern mac Pattern.compile("-?(0|([1-9][0-9]*))(\\.[0-9])?");System.out.println(mac.matcher("101.00…

Java转置_Java实现单链表的逆转置

单链表逆转置的递归与非递归方式package link.reverse;// 定义一个单链表class Node {//变量private int record;//指向下一个对象private Node nextNode;public Node(int record) {this.record record;}public int getRecord() {return record;}public void setRecord(int re…

单利 java_Java设计模式-单利模式

单例模式作为对象的创建模式,单例模式确保其某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类。单例模式有以下特点:1、单例类只能有一个实例2、单例类必须自己创建自己的唯一实例3、单例类必须给其…

esp8266接7735_基于8266的ESPEASY固件接入HASS的教程(可无脑接入各类传感...

首先国际惯例,先放上成果:QQ图片20170629160143.png (172.48 KB, 下载次数: 3)2017-6-29 16:03 上传如上图所示,楼主把颗粒物传感器和二氧化碳传感器加入到了HASS里,当然,论坛之前也有诸位大神提供过类似固件和方法来实现这一目标…

java定义private_java9开始——接口中可以定义private私有方法

在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法。只允许我们定义public访问权限的方法、抽象方法或静态方法。但是从Java 9 开始,Interface 接口中允许定义私有方法和私有静态方法。下面我们就来…

java poi生成excel文件_java poi 导出Excel文件

1,导包 poi-3.9-XXX.JAR2, 创建一个实体对象public class Student implements Serializable {/****/private static final long serialVersionUID 1L;private int id;private String name;private int age;private Date borth;public Student(int id, String name…

java中捕获异常的作用_在Java中捕获通用异常?

您可以传递Class对象并以编程方式检查。public static void checkForException(String message,Class exceptionType, ExpectedExceptionBlock block) {try {block.exceptionThrowingCode();} catch (Exception ex) {if ( exceptionType.isInstance(ex) ) {return;} else {thro…

java如何循环调用方法_Java:调用方法的“中断”循环?

我的小程序有点问题。我有一个JOptionPane要求一个数字,如果该数字小于10,则一个循环会一直持续下去,并永远做下去,继续询问数字。 在该循环内,我调用一个方法,将int作为参数。 在该方法中,我需…

随机投点法计算定积分java_11 随机模拟积分 | 统计计算

11.4 高维定积分上面的两种计算一元函数定积分的方法可以很容易地推广到多元函数定积分,或称高维定积分。设\(d\)元函数\(h(x_1, x_2, \dots, x_d)\)定义于超矩形\[\begin{aligned}C \{(x_1, x_2, \ldots, x_d): a_i \leq x_i \leq b_i, i1,2,\ldots,d \}\end{alig…

java el ognl_EL和OGNL表达式的区分

OGNL是通常要结合Struts 2的标志一起使用,如 struts页面中不能单独使用,el可以单独使用 ${sessionScope.username}页面取值区别:名称servletognl elparametersre…

java query包,有没有Java的http_build_query函数的Java等价物?

I have a Map with my data and want to build a query string with it, just like I would with http_build_query on PHP. Im not sure if this code is the best implementation of it or if Im forgetting something?public String toQueryString(Map, ?> data) throw…

JAVA不同类型数组重载_java学习笔记--java中的方法与数组

方法完成特定功能的代码块方法的格式修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){//方法体return 返回值;}方法的调用方式通过方法名调用方法根据形式参数列表将实际参数传递给方法定义方法的注意事项1.方法必须定义在类中2.方法与…

链表每k个反转 java_K 个一组翻转链表

leetcode第25题(困难)问题描述给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给…

java里面的scanner怎么关闭_作业。scanner怎么不能关闭

package try_catch; import java.util.Scanner; public class TryCatchPractice2 {//在类开始声明,则其他方法都能调用 Scanner in=new Scanner(System.in); NoBookException NoB=new NoBookException(); String[] books={"语文","数学","英语"…

java ddd 领域事件_Cribbb基于DDD/Domain Event领域事件的开源PHP通知系统

Cribbb是一个使用DDD聚合根和领域事件Domain Events概念开发的PHP开源通知框架:cribbb/cribbb GitHub几乎所有Web应用都有一个通知提醒系统,这些通知系统都有共有的属性和功能:一个发往用户的消息管道Cribbb通知系统扮演一种消息管道&#x…

java 自带导出excel_4.java项目页面导出excel功能

用的是SSM框架,字段根据自己的业务需求改1.前台页面导出/*导出按钮提交*/function downloadExcel(){$("#dynamicDownload").submit();}2.后台相关代码import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFFont;import org…

php 运行外部程序_PHP在linux上执行外部命令的方法

目录:一、PHP中调用外部命令介绍二、关于安全问题三、关于超时问题四、关于PHP运行linux环境中命令出现的问题一、PHP中调用外部命令介绍在PHP中调用外部命令,可以用,1>调用专门函数、2>反引号、3>popen()函数打开进程,三…

php直播pk规则,直播源码中的主播PK功能是如何实现的

直播行业为赢得更广泛用户的青睐,自然要不断开发更有趣的玩法、模式,在直播源码中加入主播PK功能就是一种提高直播互动性、激发用户好胜心的方法,一方面这种方法可以吸引更多用户观看,增加主播的曝光率,另一方面它又能…

php中手机端ajax上拉加载更多,jQuery手机网页上拉加载更多

手机网页和PC网页都可以使用的上拉加载更多内容,其中LoadingDataFn自己改为ajax加载就可以了var page 1, //分页码off_on false, //分页开关(滚动加载方法 1 中用的)timers null; //定时器(滚动加载方法 2 中用的)//加载数据var LoadingDataFn function() {var …

phpcms上传php,phpcms如何上传视频

phpcms如何上传视频?phpcms-v9上传视频文件时的解决方案1.不建议直接在后台上传视频文件,因为视频文件一般都比较大,直接上传影响带宽;可先通过ftp工具将视频文件上传到指定目录,然后再后台引入视频文件的地址即可2.如…