继承(extends)面向对象三大特征之一

类中有许多相同的属性和方法,代码重复,如果需要修改涉及较多类修改量增多

将子类中共有的属性和方法提取到父类,让子类继承父类,减少代码量,扩展性维护性,子类可通过super(构造方法)调用父类属性,列super.sethealth(99)

重写:

由来:当子类中的属性和方法父类不能满足时,则可以对父类的同名方法进行重写(覆盖)以满足子类的需求

必须满足的条件:重写方法和被重写方法的方法名相同,参数列表相同,返回值类型相同或是其子类,重写方法不能小于被重写方法的权限(直接相同就行)

重载(overloading)和重写(overriding)有什么区别和联系?

答:重载涉及同一个类中的同名方法,要求方法名相同,参数列表不同,与返回值类型和修饰符无关。
重写涉及的是子类和父类之间的同名方法,要求方法名相同、参数列表相同、返回值类型相同(或是其子类)、访问修饰符不能严于父类。

子类运用super.方法名来调用父类被重写的方法 | super出现在子类的方法和构造方法中,不是其他位置

super.属性名(调用父类的属性)   super.方法名(调用父类的方法 )   super(构造方法参数)  只能出现在子类的构造方法中

抽象类:

父类实例化对象没什么用处,限制父类实例化

抽象类和抽象方法的特点:

abstract修饰的类和方法成为抽象类和抽象方法

抽象类不能被实例化,抽象方法子类必须重写

抽象类中可以有0到多个或全部都是抽象方法

抽象方法只有方法声明,没办法实现,有抽象方法的类必须声明为抽象类,子类必须重写所有的抽象方法才能被实例化,否则这个子类还是一个抽象类

继承条件下构造方法调用规则:

如果在子类的构造方法中没有显示调用父类有参的构造方法,则将执行父类的无参构造方法

如果子类的构造方法中通过super显示调用父类的有参构造方法,则会执行父类的有参构造方法,不执行父类的无参构造方法

如果父类的构造方法中通过this显示调用自身的其它构造方法,则应在相应构造方法中应用以上两条规则

abstract和final关键字的运用

abstract用来修饰类和方法,不能用来修饰属性和构造方法(abstract修饰的方法其类必须是抽象类,抽象方法子类必须重写)

final用来修饰类,方法,和属性,不能修饰构造方法(final修饰的类不能被继承,final修饰的属性和方法不能改动)

java第二章继承的更多相关文章

  1. ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件

    原文:ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件 第二章 继承于WebControl的自定义控件 到现在为止,我已经写了三篇关于自定义控件开发的文章,很感谢大家的支 ...

  2. “全栈2019”Java第二章:安装JDK11(Windows)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 文章原文链接 "全栈2019"Java第二章:安装JDK11(Windows) 下一 ...

  3. [Effective Java]第二章 创建和销毁对象

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. Java第二章----对象和类

    从第一章到第二章整整隔了一个月的时间,这速度也是慢的无语了.因为这个月负责开发公司一个SaaS类型APP,忙的昏天暗地终于上线了,这才有时间写个博客.本章还是以概念为主,有点枯燥重在理解. 第一节:对 ...

  5. Java 第二章 变量

    第二章 变量 变量称为:是计算机语言中能储存计算机结果或能表示值抽象概念 .变量可以通过变量名访问 int money ; //变量 money=1000; //赋值 int money=1000: ...

  6. Java 第二章 变量、数据类型和运算符

    第二章      变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...

  7. Java OOP——第二章 继承

    1. 继承: ●继承是面向对象的三大特征之一,是JAVA实现代码重用的重要手段之一: ●继承是代码重用的一种方式,将子类共有的属性和行为放到父类中: ●JAVA只支持单继承,即每一个类只有一个父类,继 ...

  8. 对于所有对象都通用方法的解读(Effective Java 第二章)

    这篇博文主要介绍覆盖Object中的方法要注意的事项以及Comparable.compareTo()方法. 一.谨慎覆盖equals()方法 其实平时很少要用到覆盖equals方法的情况,没有什么特殊 ...

  9. 如何创建和销毁对象(Effective Java 第二章)

    最近有在看Effective Java,特此记录下自己所体会到的东西,写篇博文会更加的加深印象,如有理解有误的地方,希望不吝赐教. 这章主题主要是介绍:何时以及如何创建对象,何时以及如何避免创建对象, ...

随机推荐

  1. (转)Windows 平台下解决httpd.exe: syntax error on line 39

    近来在研究PHP,结果为了Apache的安装伤神不已...小白我在安装后,启动Apache的服务虽然可以,不过,在Apache sevice monitor 中启动services时就会出现如下的问题 ...

  2. php中获取当前时间

    因为php种有时区的设置,默认与我们这边差8小时:所以我们直接使用data方法的话,得到的时间是不准确的 所以我们在开头设置时区 //设置时区的方法: date_default_timezone_se ...

  3. Java中的io流学习(了解四大基类和基本步骤)

    Java中io流四大基类及io流操作四大基本步骤 io流:(input/output)即输入输出流.面向对象的思想之一是面向接口编程,面向父类编程,也就是多态.所以学好基类(父类)很重要. 分类 按处 ...

  4. Docker集中化web界面管理平台-Shipyard部署记录

    Docker图形页面管理工具基本常用的有三种: DOCKER UI,Shipyard,Portainer.对比后发现,Shipyard最强大,其次是Portainer,最后是Docker ui.之前介 ...

  5. 使用sqlplus创建Oracle表空间

    登录 dos窗口输入以下命令:sqlplus  回车 提示输入用户名——即创建数据库实例时的用户名 ,用户名输入:sys as sysdba 密码.........回车登录 查看数据文件位置 接下来, ...

  6. Egret飞行模拟-开发记录01

    1.项目结构简介 1.1 index.html:应用入口文件,我们可以在这里面配置项目的旋转缩放模式背景颜色等. 1.2 egretProperties.json:这个文件里面进行项目配置,包括模块和 ...

  7. WordPress版微信小程序3.2版发布

    WordPress版微信小程序(下称开源版)距离上次更新已经过去大半年了,在此期间,我开发新的专业版本-微慕小程序(下称微慕版),同时开源版的用户越来越多,截止到2018年11月26日,在github ...

  8. redis-cli显示中文

    在启动redis-cli时在其后面加上--raw参数即可启动后 再显示就正常了

  9. vue双向绑定的简单实现(原创)

    简单模拟一下vue的双向绑定实现,代码比较粗糙,菜鸟一枚,欢迎各位大佬斧正 1.实验环境: 利用a.b两个input,a代表页面中的数据,b代表data中的数据 2.原理: 利用Object.defi ...

  10. Python简单语音识别并响应

    起因是一个工作中喜欢说口头禅的同事,昨天老说"你看看你看看 操不操心".说了几次之后我就在他说完"你看看"后面续上,"操不操心".往复多次后 ...