当前位置: 首页 > news >正文

java从菜鸟_Java从菜鸟到精通(5) | 学步园

面向对象的第二个特征:

继承(Extends):

1、继承的概述

1.提高了代码的复用性。

2.让类与类之间产生了关系,有了这个关系,才有了多

态的特征。

注意:千万不要为了获取其它类的功能,简化代码而继承;

必须是类与类之间有所属关系才可以继承。所属关系 is a

2、继承的特点

3、Super关键字

4、函数覆盖

5、子类的实例化过程

6、final关键字

java语言中:java只支持单继承,不支持多继承。

为什么不支持多继承?

因为多继承容易带来安全隐患:当多个父类中定义了相同功能,

当功能内容不同时,子类对象不确定要运行哪一个。

C++可以包括多继承,Java优化了C++的多继承。

但是Java保留了这种机制,并用另一种体现形式来完成表示。叫

做多实现。

Java支持多层继承。也就是一个继承体系。

如何使用一个继承体系中的功能呢?

想要使用体系,先查阅体系父类的描述,因为父类中定义的是该

体系中共性功能。通过了解共性功能,就可以知道该体系的基本

功能。

那么这个体系已经可以让基本使用了。

那么在具体使用时,要创建最子类的对象,为什么呢?

1.因为有可能父类不能创建对象;

2.创建子类对象可以使用更多的功能,包括基本的,也

包括特有的。

简单一句话:查阅父类功能,创建子类对象使用功能。

聚集:谁里面有谁(has a)

聚合:球员和球队的关系,就叫聚合

组合:手是人体的一部分,紧密联系很高

继承:

子父类出现后:类成员的特点。

类中成员:

1、变量

2、函数

3、构造函数

1、变量

如果子类中出现非私有的同名成员变量时,子类要访问本类中的

变量,用this;子类要访问父类的同名变量,用super。

super的使用和this的使用几乎一致。

this代表的是本类对象的引用。

super代表的是父类对象的引用。

2。函数

当子类出现和父类一模一样的函数时,当子类对象调用该函数,

会运行子类函数的内容,如同父类的函数被覆盖一样。

这种情况是函数的另一个特性:重写(覆盖)。

当子类继承了父类,沿袭了父类的功能,到子类中,但是子类虽

具备该功能,但是功能的内容却和父类不一致,这是,没有必要

定义新功能,而是使用覆盖特殊,保留父类的功能定义,并重写

功能内容。

覆盖:

1.子类覆盖父类,必须保证子类权限大于等于父类权限

,才可以覆盖,否则编译失败。

2.静态这能覆盖静态。

重载:只看同名函数的参数列表。

重写:子父类方法要一模一样。

(未完待续.....  因为没有时间上网,所以,不定时上传。。其实上传这些就是希望能让大家少走些路,希望对大家有帮助!)

相关文章:

  • python数据格式_python数据类型
  • 下载mysql然后怎么安装_mysql 下载与安装
  • java 方法前加同步_Java同步的三种实现方式详解
  • mysql 事务的作用_使用Mysql事务的优点
  • java和android架构公众号_Android仿微信公众号界面
  • 连连看的连线怎么写java_求助 这个连连看的方法地方该怎么写
  • php java字节流_php中stream(流)的用法
  • java自动雨刷系统_【图文】汽车自动雨刷的使用指南
  • php 多线程处理_PHP CURL 多线程操作代码实例
  • php定义函数打印表格内容,php 自定义函数实现将数据 以excel 表格形式导出示例...
  • nodejs与php混合,php与nodejs的加密数据互通
  • php参数特殊字符,PHP中URL中特殊字符引起的问题(+,=) 分析及解决方法
  • php 鼠标点击其他区域下拉框隐藏,jQuery除指定区域外点击任何地方隐藏DIV功能...
  • java 日期转换星期,关于JAVA的小工具(日期转周几)
  • PHP的经典程序,几款经典php分页程序(1/4)
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • CentOS7 安装JDK
  • echarts的各种常用效果展示
  • Git学习与使用心得(1)—— 初始化
  • JavaScript设计模式系列一:工厂模式
  • KMP算法及优化
  • Laravel 中的一个后期静态绑定
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • ReactNativeweexDeviceOne对比
  • Redash本地开发环境搭建
  • STAR法则
  • Vue ES6 Jade Scss Webpack Gulp
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 从输入URL到页面加载发生了什么
  • 开发基于以太坊智能合约的DApp
  • 前端面试总结(at, md)
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​flutter 代码混淆
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • #传输# #传输数据判断#
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (3)(3.5) 遥测无线电区域条例
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二)c52学习之旅-简单了解单片机
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转)C#调用WebService 基础
  • (转)LINQ之路
  • .gitattributes 文件
  • .Net 8.0 新的变化
  • .NET处理HTTP请求
  • .net反编译工具
  • .NET中的Exception处理(C#)
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • .vimrc 配置项
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?