面向对象三大特征之继承(extends)——Java笔记(六)

继承:
从一般到特殊的关系,是一种拓展关系,子类对象是父类的一种,也可称为”is a“的关系
泛化:
把子类里的共性抽取到父类里的来的过程
特化:
子类在父类的基础上上定义了自己特有的行为特征的过程
格式:
修饰符 class SubClass extends SuperClass{
}
SubClass :导出类、继承类、子类
SuperClass:父类、基类、超类、源类
子类SubClass通过extends来继承父类SuperClass
继承是通过extends来实现的
继承提高了代码的复用性,提高了软件的开发效率
 
让类与类之间产生关系,这个是实现多态的前提 
子类对象访问实例成员的时候,是现在子类里找,要是找不到再去父类找
每个类有且只有一个直接父类
一个类没有显示的继承其他的一个类时候,默认的直接父类就是object类
一旦一个类显示的继承了其他的一个类的时候,此时默认的直接父类object就会被取消
Java只支持单继承不支持多继承
父类里面私有的东西,子类不能继承
在继承操作中,对于子类的对象实例化,子类对象在实例化之前必须首先调用父类中的构造方法之后在调用自身的构造方法
证明:
 1 class Super{
 2  public Super(){
 3   System.out.println("我是父类super");
 4  }
 5 }
 6 class Sub extends Super{
 7  public Sub(){
 8   System.out.println("我是子类sub");
 9  }
10 }
11 public class InstanceDemo {
12  public static void main(String[] args) {
13   new Sub();
14   /**
15    * 我是父类super
16    * 我是子类sub
17    *
18    * 先打印的是父类里面的在打印的子类里面
19    * 从这个可以看出是先调用父类的构造方法创建父类对象再来调用子类里面的构造方法
20    *
21    */
22  }
23 }
子类对象在初始化之前会默认调用父类无参的构造方法,但是一旦子类显示的调用了父类其他的构造方法,那么默认调用的构造方法将会被取消
方法的重写(Override):
当父类的某个方法不适合于子类本身的特征行为时就当重写父类中应当改变的方法
方法重写应遵循的原则:
方法签名(方法名+参数列表)必须相同
子类方法的返回值类型比父类方法的返回值类型更小或相等
子类方法声明抛出的异常应比父类方法申明跑出异常更小或相等,即子类方法不能抛出新的异常类型,子类方法可以同时声明抛出多个父类方法声明抛出异常的子类(RuntimeException例外)
子类方法的访问权限应比父类方法更大或相等
overload 与 override

 

区别点
重载(overload)
重写(override)
1           
判断规则     
参数列表顺序不同、类型不同、个数不同都可以构成重载
    同类中方法名相同,但是方法的参数列表不同,与方法的返回值类型和修饰符无关
  方法签名(方法名+参数列表)必须相同
    子类方法的返回值类型比父类方法的返回值类型更小或相等
    子类方法声明抛出的异常应比父类方法申明跑出异常更小或相等
    子类方法的访问权限应比父类方法更大或相等
2
权限
无权限要求
被重写的方法不能拥有比父类更严格的权限
3
范围
发生在一个类中
发生在继承关系中
4
多态
编译时多态
运行时多态
构造方法不能被重写
super关键字
表示父类对象的默认引用
如果子类要调用父类被覆盖的实例方法,可用super作为调用者调用父类被覆盖的实例方法
使用super调用父类方法
使用super调用父类的构造方法
对super的调用必须是构造器中的第一个语句
this不能出现在static修饰的方法中,super也一样不能出现在static修饰的方法中
因为static修饰的方法属于类,即调用者是类   
this与super     
 
区    别
              
this
super
1          
使   用
调用本类中的字段或方法
从子类调用调用父类的字段或方法
2
构   造
可以调用本类中的构造方法,且有一个构造方法要作为出口
从子类调用父类的构造方法,不管子类如何安排最终一定会去调用,默认调用的父类中无参的构造方法
3
要   求
调用自身构造方法时放在构造方法首行
调用父类构造方法时放在子类构造方法首行
4
特   殊
表示当前对象
表示父类对象
ps:使用super()和this()在同一个构造方法中是不可能同时显示出现的

 

转载于:https://www.cnblogs.com/Essence/p/3967426.html

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

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

相关文章

linux 虚拟钢琴程序,基于 Linux 与 VS1003 的 MIDI 电子节拍器的设计与实现,为乐器演奏(如钢琴、吉他)...

基于 Linux 与 VS1003 的 MIDI 电子节拍器的设计与实现,为乐器演奏(如钢琴、吉他)2016-08-22 0 0 0 4.0分其他1积分下载如何获取积分?基于 Linux 与 VS1003 的 MIDI 电子节拍器的设计与实现,为乐器演奏(如钢琴、吉他)提供稳定,丰富…

一个从源代码里提取中文字符串的java类

2019独角兽企业重金招聘Python工程师标准>>> 工作中需要优化代码里的中文警示语和异常信息,实在比较多,所以就写了个程序专门从代码里提取中文字符串。 java做的,比较简单,放上来备忘 package com.extractstr.app;impo…

oracle RAC切换归档

(转自leshami) RAC环境下的归档模式切换与单实例稍有不同,主要是共享存储所产生的差异。在这种情况下,我们可以将RAC数据库切换到非集群状态下,仅仅在一个实例上来实施归档模式切换即可完成RAC数据库的归档模式转换问…

linux启用ipmi服务,使用 ipmitool 实现 Linux 系统下对服务器的 ipmi 管理

简介: IPMI 是一种可扩展的标准,它定义了如何监控硬件和传感器、控制系统部件以及记录重大事件,随着 ipmi 技术在服务器中的应用,利用 ipmi 的众多优势就成为服务器管理特别是集群管理中不可缺少的部分。本文首先介绍了 ipmi 的一…

eclipse 使用指南

eclipse使用指南 eclipse下载地址: 1、eclipse快捷键 2、将eclipse新建项目的默认编码GBK改为UTF-8 3、Java 编程下 Eclipse 如何设置单行代码显示的最大宽度 4、使用Eclipse创建模板并格式化代码5、Java compiler level does not match the version of the install…

sql 创建用户脚本

USE master go CREATE LOGIN jiazhuang --用户名 WITH PASSWORD sa, --密码 DEFAULT_DATABASE JiaZhuan, --数据库名 CHECK_EXPIRATION OFF, CHECK_POLICY OFF go EXEC sp_addsrvrolemember JiaZhuan, sysadmin --角色 go 要想成功访问 SQL Server 数据库中的数据…

linux中bc用法英文,使用GNU bc在Linux Shell中进行数学运算

在 shell 中使用 bc 更好地做算数,它是一种用于高级计算的数学语言。大多数 POSIX 系统带有 GNU bc,这是一种任意精度的数字处理语言。它的语法类似于 C,但是它也支持交互式执行语句和处理来自标准输入(stdin)的数据。因此,它通常…

Linux C Socket编程原理及简单实例

部分转自:http://goodcandle.cnblogs.com/archive/2005/12/10/294652.aspx 1. 什么是TCP/IP、UDP? 2. Socket在哪里呢? 3. Socket是什么呢? 4. 有很多的框架,为什么还在从Socket开始? 5. Linux C…

linux中timer的作用,linux - linux / timer.h setup_timer()到期功能不起作用? - 堆栈内存溢出...

因此,我的setup_timer()中的TimerExpire函数会引起巨大的恐慌(将在下面发布),而对TimerExpire()的常规函数​​调用实际上将输出我的输入。void TimerExpire(char* data){printk("Timer Data: %s\n", data);}setup_timer(&my_timer, Timer…

蜉蝣极客

蜉蝣极客 百科名片 蜉蝣目(英文:mayfly,学名:Ephemeroptera)通称蜉蝣,具有古老而特殊的性状,是最原始的有翅昆虫。和蜻蜓目可同分为古翅次纲,他们的翅不能折叠。蜉蝣目昆虫体形细长…

C#获取硬件信息

//硬件信息 public class GF_Hardware { /// <summary> /// cpu序列号 /// </summary> /// <returns></returns> public static string getID_CpuId() { string cpuInfo "";//cpu序列号 ManagementClass cimobject new ManagementClass(&q…

软件測试自学指南---从入门到精通

近来&#xff0c;软件測试行业发展迅速&#xff0c;企业越来越重视測试了。越来越多的人增加了測试大军中&#xff0c;非常多人也想通过自学来学习软件測试技术增加这个行业&#xff0c;可是如今软件測试的书籍越来越多&#xff0c;也良莠不齐&#xff0c;并且软件測试涉及的技…

解决Web部署 svg/woff/woff2字体 404错误

原文:解决Web部署 svg/woff/woff2字体 404错误问题&#xff1a;最近在IIS上部署web项目的时候&#xff0c;发现浏览器总是报找不到woff、woff2字体的错误。导致浏览器加载字体报404错误&#xff0c;白白消耗了100-200毫秒的加载时间。 原因&#xff1a;因为服务器IIS不认SVG&am…

linux学习交流群,求linux(ubuntu)学习交流群

匿名用户1级2015-05-14 回答ubuntu学习群&#xff1a;65563370该文章是小弟学习linux归纳出来的一些基础知识&#xff0c;也是做为自己的参考资料&#xff0c;希望各位渴望学习linux的朋友们共同学习。1、linux分区--在linux里面所有的设备、任何东西&#xff0c;在linux看来都…

Linux文件系统构成

/boot目录&#xff1a; 内核文件、系统自举程序文件保存位置,存放了系统当前的内核【一般128M即可】 如:引导文件grub的配置文件等 /etc目录&#xff1a; 系统常用的配置文件&#xff0c;所以备份系统时一定要备份此目录 如&#xff1a;系统管理员经常需要修改的文件&#xff0…

压缩感知先进——关于稀疏矩阵

前《初识压缩感知Compressive Sensing》中我们已经讲过了压缩感知的作用和基本想法&#xff0c;涉及的领域&#xff0c;本文通过学习陶哲轩对compressive sensing&#xff08;CS&#xff09;的课程&#xff0c;对压缩感知做进一步理解。针对其原理做出解说。本文较为理论性&…

红旗linux as4,可能是史上最完美的IC5141安装说明档(RHEL-AS4)

文档作者&#xff1a;Sideway联系方式&#xff1a;EMAIL:xtadwyahoo.com.cnQQ:19487607一、安装环境1、硬件需求(1)内存128M以上(2)硬盘空间10G以上(IC5141安装后约占3G)(3)能被RHEL AS4支持的显卡2、安装RHEL AS4(1)安装X Window(2)安装GNOME、KDE(3)安装所有的开发包工具(4)安…

转:upload.parseRequest为空

FileItemFactory factory new DiskFileItemFactory(); ServletFileUpload upload new ServletFileUpload(factory); upload.setHeaderEncoding("UTF-8"); List items upload.parseRequest(request); 上传是items一直是空list。导致原因是struts2把原始的…

基于环信sdk的陌生人交友php服务器代码开源

2019独角兽企业重金招聘Python工程师标准>>> 这个是代码结构 服务器端需要两个服务器端软件的支持&#xff1a; 1&#xff1a;weed-fs golang写的海量小文件存储工具 2&#xff1a;memcache 流行的缓存服务器 服务器端主要配置是 conf.php 文件&#xff0c;配置数据…

Linux视频 pad,Wine 1.9.10 发布下载, 改善视频输出

Wine 1.9.10最近发布下载&#xff0c;改进了大量的新功能和错误修正。一个显著的更新是此版本改善视频输出&#xff0c;更兼容目录列表&#xff0c;修复一些C 运行时。Wine 1.9.10 Bug 修复Month calendar control uses 0sunday for firstDayOfWeektooltips not working proper…