JAVA知识基础(八):继承

1.概述

1.1、继承的由来
至于由来简单一句话:多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为。

继承描述的是事物之间的所属关系,这种关系是 is-a 的关系。

1.2、继承的定义
继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。

这里再声明一点,父类又称为超类或者基类。而子类又称为派生类这点很基础!

1.3、继承的优点
提高代码的复用性。
类与类之间产生关系,为多态做了完美的铺垫(不理解没关系,之后我会再写一篇多态的文章)
虽然继承的优点很多但是Java只支持单继承,不支持多继承。

1.4、继承的格式
通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下:

  class 父类 {... }class 子类 extends 父类 { ... 
}

2.关于继承之后的成员变量

当类之间产生了关系后,其中各类中的成员变量,产生了哪些影响呢? 关于继承之后的成员变量要从两方面下手,一是成员变量不重名方面,二是成员变量重名方面。

如果子类父类中出现不重名的成员变量,这时的访问是没有影响的.

如果子类父类中出现重名的成员变量,这时的访问是有影响的
子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字,至于修饰父类成员变量,类似于之前学过的 this 。 使用格式 super.父类成员变量名

如果父类中的成员变量非私有:子类中可以直接访问。私有:子类是不能直接访问的。

3.关于继承之后的成员方法

当类之间产生了关系,其中各类中的成员方法,又产生了哪些影响呢? 同样我们依旧从两方面分析。

如果子类父类中出现不重名的成员方法,这时的调用是没有影响的。对象调用方法时,会先在子类中查找有没有对 应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法.

成员方法重名大体也可以分两种情况:
1、方法名相同返回值类型、参数列表却不相同(优先在子类查找,没找到就去父类)
2、方法名、返回值类型、参数列表都相同,没错这就是重写(Override)

重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效果,也称为重写或者复写。声明不变,重新实现。

4.关于继承之后的构造方法

构造方法的名字是与类名一致的,所以子类是无法继承父类构造方法的。

构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构造方法中默认会在第一句代码中添加super(),表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。

super() 不写也默认存在,而且只能是在第一句代码中。
下一篇是关于this与super关键字的总结。

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

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

相关文章

MIP 2016年终总结

MIP 项目组成立至今已经有一年多的时间,在过去的一年里,感谢各位的关注。 1. MIP JS 迭代 MIP JS 运行环境是 MIP 页面和 MIP 组件运行的基石。在 2016 年 4 月,MIP JS 发布了 mipmain-v0.0.1.js, 随后经过多次迭代,在 2016 年 …

JAVA知识基础(九):this、super 关键字总结

1.this关键字 this有三种常见用法 1.this调用本类中的属性,也就是类中的成员变量 2.this调用本类中的其他方法 3.this调用本类中的其他构造方法,调用时要放在构造方法的首行。 2.super关键字 在java里面,对于super关键字通常有两种用法 …

向MIP开源项目提交Issues

Issues 是 GitHub 管理需求,讨论技术方案的方式,附:官方解释。MIP 是在 GitHub 上的开源项目,也使用 Issues 来做任务管理。 一、Issues 在 MIP 项目中的应用 MIP 项目中的 Issues 主要有两种用法: 1. * 记录 bug,…

Nginx(七):nginx原理解析

前面我们讲到了nginx的反向代理、负载均衡、动静分离以及高可用,本篇我们来了解一下nginx的原理,看一下nginx是怎么执行的。 1、mater和worker 2、worker是如何进行工作的 3、相关问题 3.1、一个 master 和多个 woker 有好处 (1&#xff0…

为什么MIP-Cache存在

在去年十月的一篇 博客文章 提到 MIP 加速器是由 MIP-HTML, MIP-JS 和 MIP-Cache 三个模块共同产生加速效果的。MIP-HTML 和 MIP-JS 都是开源的,在 GitHub 上可以访问。但 MIP-Cache 是百度提供的,所有从百度搜索结果页打开的页面都是 MIP-Cache 的页面。…

JAVA知识基础(十):多态

1.概述 1.1多态的定义 多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作。 多态性是对象多种表现形式的体现。 1.2多态的优点 消除类型之间的耦合关系可替换性可扩充性接口性灵活性简化性 1.3多态存在的三个…

MIP技术交流分享(3月9日)

3月9日上周四下午,MIP 团队工程师与去哪儿酒店云、众荟的 Web 前端工程师进行了一次面对面的技术交流。 在这次交流中,MIP 工程师主要分享了 MIP 技术原理,MIP 加速原理,以及 MIP 为开发者提供的工具集。去哪儿的工程师也提出了通…

JAVA知识基础(十一):异常

1.异常的概念 简单说就是不正常运行,最终导致JVM的非正常停止。 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。 异常指的并不是语法错误,语法错了,编译不…

SpringBoot基础篇(一):Spring Boot入门

我们今天开始对SpringBoot的学习,本篇主要是Spring Boot的入门部分。 1、SpringBoot简介 引用SpringBoot在百度百科中的含义: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使…

SpringBoot基础篇(二):HelloWorld细节探究

1、场景启动器 1.1依赖 <!--Hello World项目的父工程是org.springframework.boot--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</versio…

MIP 与 AMP 合作进展(3月7日)

“到目前为止&#xff0c;全网通过 MIP 校验的网页已超10亿。除了代码和缓存&#xff0c; MIP 还想做更多来改善用户体验移动页面。” 3月7日&#xff0c;MIP 项目负责人在首次 AMP CONF 上发言。 那么 MIP 和 AMP 的关系是什么呢&#xff1f; AMP 是一个开源性项目&#xff…

SpringBoot番外篇(一):使用Spring Initializer快速创建Spring Boot项目(IDEA版)

IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目&#xff1b; 选择我们需要的模块&#xff1b;向导会联网创建Spring Boot项目&#xff1b; ps:需要联网 1、创建新项目时选择Spring Initializ&#xff0c;选择好java版本&#xff0c;点击next。r 2、填写项…

开发教程(四) MIP组件平台使用说明

组件审核平台用于上传 MIP 组件。经过自动校验之后&#xff0c;提交审核&#xff0c;通过审核的组件会定时推送到线上&#xff0c;供网站使用。 平台地址&#xff1a;https://www.mipengine.org/platform/ 1. 使用说明 MIP 组件审核平台用于提交开发完成的组件&#xff0c;如…

MIP 技术交流分享(3月15日)

3月15日下午&#xff0c;MIP 团队工程师与58赶集的 Web 前端工程师进行了一次面对面的技术交流。 在这次交流中&#xff0c;MIP 工程师主要分享了 MIP 技术原理&#xff0c;MIP 加速原理&#xff0c;以及 MIP 为开发者提供的工具集。 58赶集的工程师提出了以下问题&#xff1a…

Redis(零):背景

什么是NoSQL&#xff0c;什么是Redis&#xff0c;我们在了解这个系列之前&#xff0c;先来看一下Redis是从何而来&#xff1f;Why redis is needed? 1、单机MySQL年代 在最早的单机MySQL年代&#xff0c;存在着访问量小&#xff0c;单个数据库等特点。 但是特有着众多的缺…

Redis(一):什么是NoSQL与NoSQL分类

1、什么是NoSQL NoSQL Not only SQL (不仅是SQL)&#xff0c;即泛指非关系型数据库。随着Web2.0时代诞生&#xff01;NoSQL在当今大数据的环境下发展十分迅速&#xff01; NoSQL 是一项全新的数据库革命性运动&#xff0c;早期就有人提出&#xff0c;发展至2009年趋势越发高涨…

MIP 内容声明

从搜索结果页点出的 MIP 页面&#xff0c;其页面上的任何内容&#xff08;包括但不限于广告、在线咨询、统计等组件&#xff09;均视为在原站点上的投放和使用。 MIP &#xff08;Mobile Instant Pages - 移动网页加速器&#xff09;, 是一套应用于移动网页的开放性技术标准。…

Redis(二):Redis入门与性能测试

1、Redis概述 Redis是什么&#xff1a; Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 免费开源&#xf…

互联网的发展背离了其初衷吗?

作者 | 高磊 编辑 | 尾尾 一、互联网初衷究竟是什么&#xff1f; 互联网的初衷究竟是什么&#xff1f; 对于这个问题&#xff0c;被誉为“互联网之父”的蒂姆伯纳斯李&#xff08;Tim Berners-Lee&#xff09;应该最有发言权。 伯纳斯李认为&#xff0c;互联网最具价值的地…

Redis(三):Redis基础知识与常用命令

1、基础命令 Redis默认有16个数据库&#xff0c;用的是第0个数据库&#xff0c;可以使用select进行切换数据库&#xff0c;使用DBSIZE查看DB大小&#xff08;只针对当前数据库&#xff09;。 使用keys * 查看当前数据库下所有的key&#xff0c;使用flushdb清除当前数据库&am…