java的继承实例_java继承(实例讲解一)

Java继承(Java inheritance)

Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。比如可以先定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,轮胎,而又由车这个类派生出轿车和卡车两个类,为轿车添加一个小后备箱,而为卡车添加一个大货箱。

JAVA不支持多重继承,单继承使JAVA的继承关系很简单,一个类只能有一个父类,易于管理程序,同时一个类可以实现多个接口,从而克服单继承的缺点。

在面向对象程序设计中运用继承原则,就是在每个由一般类和特殊类形成的一般—特殊结构中,把一般类的对象实例和所有特殊类的对象实例都共同具有的属性和操作一次性地在一般类中进行显式的定义,在特殊类中不再重复地定义一般类中已经定义的东西,但是在语义上,特殊类却自动地、隐含地拥有它的一般类(以及所有更上层的一般类)中定义的属性和操作。特殊类的对象拥有其一般类的全部或部分属性与方法,称作特殊类对一般类的继承。

继承所表达的就是一种对象类之间的相交关系,它使得某类对象可以继承另外一类对象的数据成员和成员方法。若类B继承类A,则属于B的对象便具有类A的全部或部分性质(数据属性)和功能(操作),我们称被继承的类A为基类、父类或超类,而称继承类B为A的派生类或子类。

继承避免了对一般类和特殊类之间共同特征进行的重复描述。同时,通过继承可以清晰地表达每一项共同特征所适应的概念范围——在一般类中定义的属性和操作适应于这个类本身以及它以下的每一层特殊类的全部对象。运用继承原则使得系统模型比较简练也比较清晰。

编辑本段

Java继承的特征

(1)继承关系是传递的。若类C继承类B,类B继承类A,则类C既有从类B那里继承下来的属性与方法,也有从类A那里继承下来的属性与方法,还可以有自己新定义的属性和方法。继承来的属性和方法尽管是隐式的,但仍是类C的属性和方法。继承是在一些比较一般的类的基础上构造、建立和扩充新类的最有效的手段。

(2)继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。

(3)继承提供了软件复用功能。若类B继承类A,那么建立类B时只需要再描述与基类(类A)不同的少量特征(数据成员和成员方法)即可。这种做法能减小代码和数据的冗余度,大大增加程序的重用性。

(4)继承通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性。

(5)提供多重继承机制。从理论上说,一个类可以是多个一般类的特殊类,它可以从多个一般类中继承属性与方法,这便是多重继承。Java出于安全性和可靠性的考虑,仅支持单重继承,而通过使用接口机制来实现多重继承。

编辑本段

java-继承-实例

//建一个A类

class A{

//成员变量 其中num是实参

int num=0;

//成员方法,其中 i 是型参

public A(int i){

//输入int型文件输出下面

System.out.println("aaaaaaaaaaaaaaaaaaa");

System.out.println("i= "+i);

//把输入的i赋值给成员变量num

num=i;

}

}

//B继承A

class B extends A{

int num=0;

//成员方法B.

public B(){

//继承类A的方法.因为B继承了A必然继承了A的特性.所以输入int值10令方法实现.

super(10);

System.out.println("bbbbbbbbbbbbbbbbbbbb");

//这里的num是类B的.

System.out.println("num= "+num);

//如果想显示类A的num则需要用下列的super.num.这里注意num在类A中需是成员变量才可以.

System.out.println("super.num= "+super.num);

}

}

//建立测试类C

public class C{

//main

public static void main(String aa[]){

//new 一个对象B()

new B();

}

}

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

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

相关文章

java 调用groovy_Java调用Groovy脚本

在idea下,标准的Java maven项目中展示如何调用Groovy脚本和方法。maven项目引进Groovy libFile -> Project Structure -> Global Libaries 添加下载好的Groovy下lib里面的jar包调用Groovy脚本首先,Java调用Groovy脚本需要该Groovy脚本里面有个main…

java struts 框架_java中struts 框架的实现

该文章主要简单粗暴的实现了struts的请求转发功能。 其他的功能后续会慢慢补上。最近在学习javassist的内容,看到一篇文章 大家一起写mvc 主要简单的描述了mvc的工作流程,同时实现了简单的struts2功能。这里仿照的写了个简单的struts2框架,…

memcached 使用 java_使用Java java_memcached client的陷阱

这2天,才发现之前我们的某个开发人员使用java_memcached-release_2.0.1.jar是有问题的在我们的某个模块里,需要2个memcached,分别提供不同的服务于是,开发的人员就从网上粘贴来如下的码,分别生成2个MemcacheUtil类stat…

java final 变量只读_java final的使用总结

final 变量:是只读的;final 方法:是不能继承或者重写的。final 引用:引用不能修改,但是对象本身的属性可以修改;final class:不可继承;final MyObject o new MyObject();o.setValue…

java list 获取索引_java – 获取arrayList中元素的索引

我试图在arrayList minuteList中获得466的索引[288, 318, 346, 376, 406, 436, 466, 1006, 1036, 1066, 1096, 1126, 1156]但我收到这个错误:java.lang.IndexOutOfBoundsException: Index: 466, Size: 13at java.util.ArrayList.rangeCheck(ArrayList.java:635)at j…

java 如何调用static_java 关键字static详细介绍及如何使用

java 关键字static 详解一、 static代表着什么在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码…

java xml setdoctype_如何在Java中使用DOM将自定义doctype标记添加到带有xhtml标记的xml中?...

我使用java中的DOM创建了一个XML文档,并将XHTML标记插入到XML文档中。现在我要添加如下doctype:]>我试着把它作为一个字符串追加,但没有成功。DocumentBuilderFactory docFactory DocumentBuilderFactory.newInstance();docFactory.setNamespaceAware(true);DocumentBuilde…

java 实验报告模板_java实验报告模板

java实验报告模板1 / 26java 实验报告模板河南工业大学实验报告课程 Java 程序设计 _ 实验名称 一、Java 程序流程控制 院 系____ ____ 专业班级__ _________ 姓 名_______________ 学 号____________ _ 指导老师: 日 期一.实验目的熟悉 Java 语言中的数据类型、变量…

Java写入磁盘阵列_磁盘阵列RAID介绍及计算公式

一、RAID介绍磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系…

dbm和mysql使用场景_mysql基本用法总结

1 下载安装官网下载:http://www.mysql.com/注意需要一个Oracle账号才能下载。2 启动mysql将mysql安装目录:设置为环境变量,并将:\bin目录加入环境变量中。启动命令行,输入:mysqld以启动mysql的守护进程。3 …

java disposable_rx-java – RxJava中的CompositeDisposable是什么

复合一次性使处理(认为提前取消更容易).假设您有一个活动同时发生多个api调用:var disposable api.call1(arg1,arg2).subscribe(...)var disposable2 api.call2(arg1).subscribe(...)var disposable3 api.call3().subscribe()如果您需要提前处置(例如,用户导航远…

Java中implies_boolean implies(Permission p)

boolean implies(Permission p)描述 (Description)java.util.PropertyPermission.implies(Permission p)方法检查此PropertyPermission是否隐含指定的Permission 。 这是通过检查p是PropertyPermission对象来完成的, p动作是该对象的动作的子集,并且该对…

java.rmi.server.port_java.rmi.server.ExportException: internal error: ObjID already in use报错处理...

由于在server.xml文件中使用配置了在catalina.sh中也指定了对应CATALINA_OPTS"$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port12340 -Dcom.sun.management.jmxremote.authenticatefalse -Dcom.sun.management.jmxremote.sslfalse -D…

java 易变变量_关于java:易变变量和其他变量

以下是经典Concurency in Practice的内容:When thread A writes to a volatile variable and subsequently thread Breads the same variable, the values of all variables that werevisible to A prior to writing to the volatile variable, become visibleto B …

java违反唯一约束异常_Caused by: java.sql.BatchUpdateException: ORA-00001: 违反唯一约束条件 (DSPACE.SYS_C007868)...

Caused by: java.sql.BatchUpdateException: ORA-00001: 违反唯一约束条件 (DSPACE.SYS_C007868).............................遇到这种问题解决方法1. 使用 约束条件查找包含的表明以及 表的字段select a.constraint_name,a.constraint_type,b.column_name,b.table_namefrom…

js中的if与Java中的if_JS直接if参数的用法JS中!和!!区别

经常在JS中见一些代码直接if(参数),然后参数调用的时候是将元素自己传下去。例如下面代码:functiontest1(obj){if(obj){alert($(obj).val());}else{alert("has not obj");}}我们分别点击上面的两个输入框显示如下:解释:实际上相当于java中的重载&#xff…

vs2019能写Java吗_Visual studio2019打包程序过程

要想打包visual studio中的程序我们需要用到setup用于自定义安装部署的项目方案。但是在VS2019中不见了,微软是有意废除安装项目的,合作了一个第三方的安装项目单独使用。我们可以从官网上把Visual Studio Installer 项目扩展下载下来。地址:…

java各个版本的特性_Java各个版本的新特性

原链接:http://blog.csdn.net/shareus/article/details/507361591.51.自动装箱与拆箱:2.枚举(常用来设计单例模式)  http://www.jb51.net/article/78351.htm3.静态导入4.可变参数5.内省1.61.Web服务元数据2.脚本语言支持3.JTable的排序和过滤4.更简单,…

java继承的终极奥义_java学习笔记12-继承

继承就是子类继承父类的特征和行为有时候单一划分某个类别并不能处理所有情况,某些类别下有明显不同的子类,这些子类虽然拥有类似的行为和属性,但是他们各自发生的这些行为的方式或者属性对某些结果的影响是不一样的,这就需要划分…

flink java 并行度_flink solt和并行度

简介Flink运行时主要角色有两个:JobManager和TaskManager,无论是standalone集群,flink on yarn都是要启动这两个角色。JobManager主要是负责接受客户端的job,调度job,协调checkpoint等。TaskManager执行具体的Task。Ta…