继承(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. kibi - join and filter data from multiple Elasticsearch indexes

    Kibi extends Kibana 4.6.4 with data intelligence features. The core feature of Kibi is the capabilit ...

  2. Ubuntu 16.04 安装 Python3.6

    直接在官网下载 Python3.6.3 的源代码,解压缩,按照 README.rst 内说明步骤编译安装即可,这样 pip3.6 也会自动安装. 注意第一步配置时最好指定安装目录, $ ./confi ...

  3. 平安技术开放日质量保证技术专场第一期 [附部分 ppt]

    4月8号在上海平安大厦,平安证券和Tester联合举办了一场质量保证技术专场,附上部分PPT 平安技术开放日介绍   ppt下载 A/B测试的大数据架构实践 链接: http://pan.baidu. ...

  4. windows下 go安装qt绑定

    1.下载安装QT 离线版QT地址:  https://download.qt.io/official_releases/qt/5.11/5.11.1/qt-opensource-windows-x86 ...

  5. python css选择器

    css 选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  6. Glide 加载部分圆角图片

    在App开放中经常遇到设置ImageView为部分圆角的情况,但是Glide又没有提供这个方法,该怎么办呢?直接上代码! /**  * @author csc  * @date 2019-01-18 ...

  7. 通过 Composer 安装 Laravel 安装器

    composer global require "laravel/installer" linux下确保 $HOME/.composer/vendor/bin 在系统路径中(Mac ...

  8. Centos7下GlusterFS分布式存储集群环境部署记录

    0)环境准备 GlusterFS至少需要两台服务器搭建,服务器配置最好相同,每个服务器两块磁盘,一块是用于安装系统,一块是用于GlusterFS. 192.168.10.239 GlusterFS-m ...

  9. C# Winform开发程序调用VLC播放器控件播放视频.

    VLC是个好东西,支持的格式多,还无广告,关键还有调用它的播放控件不用安装. 开个文章记录下调用这个控件的流水账,以便以后需要的时候查阅 创建工程 首先新建一个Winform工程. 这里姑且叫做VLC ...

  10. Win10和Ubuntu双系统搭建详

    最近学习云计算时,需要搭建xen和Hadoop,虚拟机容易出很多问题所以搭建了双系统,也方便以后的学习. 下面是详细搭建过程: 准备材料: U盘(容量>8G,最好是3.0接口速度快).Ultra ...