JAVASE(九)面向对象特性之 : 继承性、方法重写、关键字super、
个人博客网:https://wushaopei.github.io/ (你想要这里多有)
1、继承性
1.1 为什么要类的继承性?(继承性的好处)
①减少了代码的冗余,提高了代码的复用性;
②更好的扩展性
③为多态性的使用提供了前提
1.2 继承的格式:A extends B
- A类叫做子类 (subClass)
- B类叫做父类 (superClass,超类,基类)
1.3 子类继承父类以后哪些不同?
子类继承父类以后,就拥了父类中的属性和方法(不认为父类中的构造器可以被继承。但是子类可以用super访问弗雷的构造方法。子类除了可以拥父类中的属性和方法,还可以自定义属性和方法。
1.4 java中继承性的说明
1.子类继承父类以后,就拥了父类中的属性和方法(不认为父类中的构造器可以被继承。子类除了可以拥父类中的属性和方法,还可以自定义属性和方法。
2.java中的类只支持单继承(一个类只能有一个父类。一个父类可以有多个子类)。
3.子类继承父类以后,无法直接访问父类中被私化的属性(我们认为继承了被私化的属性。但是我们可以间接的通过get/set方法对属性进行调用。
4.父类是一个相对的概念,父类分为直接父类和间接父类。
子类继承父类以后,除了拥父类中的属性和方法外,还继承了间接父类中的属性和方法。
2、方法的重写
2.1什么是方法的重写 :
定义 :子类继承父类以后,子类可以对父类中的方法进行重写(覆盖,覆写)
2.2方法重写后的调用 :
子类重写父类的方法后。通过子类对象进行调用方法,实际上调用的是子类中重写的父类中的方法。
2.3 说明
权限修饰符 返回值类型 方法名(形参列表){
方法体;
}
子类重写的方法 父类被重写的方法
1.子类重写的方法和父类被重写的方法的方法名和形参列表必须一样。
2.子类重写的方法的权限修饰符不小于父类被重写方法的权限修饰符。
3.子类重写的方法的返回值类型不大于父类被重写方法的返回值类型(父类被重写方法的返回值类型和子类重写方法的返回值类型必须子父类关系才能。
注意 :
①父类被重写方法的返回值类型如果是void 子类重写方法返回值类型也只能是void
②父类被重写方法的返回值类型 double 子类重写方法返回值类型int (不可以的,只能是相同的)
4.子类方法抛出的异常不能大于父类被重写方法的异常(后面再说
2.5 注意
- 如果父类中的方法的权限修饰符是private,那么我们不认为这个方法可以被子类重写。
- 子父类中同名的方法(非重写)须同时为static的,或同时为非static的
3、关键字super
super用来调用父类中的结构,包括属性,方法,构造器 。
super可以调用:属性,方法,构造器
super调用属性和方法:
父类被子类继承以后,可以在子类的构造器和方法中。通过使用"super."来调用父类中的属性和方法。一般我们都会省略掉"super."
如果子类中的属性名和父类中的属性名一样,那么调用父类中的属性就不能省略"super."。如果子类重写了父类中的方法,如果需要调用父类中被重写的方法也不能省略"super."。
super调用构造器:
格式 :super(形参列表)
说明 :
- super(形参列表)只能放在子类构造器的首行
- 在子类同一个构造器中只能有一个super(形参列表)
- 在子类同一个构造器中super(形参列表)和this(列参列表)只能使用其中的一个
- 在子类的构造器中如果没显示的调用super(形参列表)和this(列参列表) 那么默认调用的是 super() - 父类的空参构造器
4、子类对象实例化过程(理解)


过程上:
通过子类的构造器,一定可以调用到直接父类和间接父类....Object类中的构造器。进而将这些类的信息通过JVM加载到内存中。所以可以进行调用父类中的属性和方法。
结果上:
子类继承了父类以后。那么子类就拥了父类中的属性和方法。通过子类的对象就可以调用父类中的属性和方法。
注意:自始之终我们只认为创建了子类一个对象
JAVASE(九)面向对象特性之 : 继承性、方法重写、关键字super、的更多相关文章
- Java面向对象之继承,方法重写,super关键字,员工类系列继承题
在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 继承的好处 1.继承的出现提高了代码的复用性,提高软件开发效率. 2.继承 ...
- java方法重写和super关键字
//java方法重写和super关键字 //在继承中,其实就是子类定义了和父类同名的方法 //就是方法,属性都是相通的 //重写限制: //被子类重写的方法不能拥有比父类方法更加严格的权限 //sup ...
- Java方法重写与super关键字
----------siwuxie095 方法的重写: (1)在继承中也存在着重写的概念,其实就是子类定义了和父类同名的方法 (2)定义:方法名 ...
- 04 Python的继承、方法重写、super()类、父类私密属性的调用
继承 A类继承B类,A即可获得B类的全部公共属性和方法(包括内置属性和方法).格式如:class A(B): class Animal: def sleep(self): print("zZ ...
- 乐字节Java继承|方法重写、super和final关键字
大家好,乐字节的小乐又来了,上一篇是:乐字节Java|JavaBean.继承与权限修饰,也是属于Java继承的,今天继续Java继承. 一. 方法的重写 父类不满足子类的要求,按需改写.注意 方法签名 ...
- 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍
面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...
- c#基础学习(0702)之面向对象和方法重写概述
面向对象编程(OOP==>Object-Oriented Programming) OOA:面向对象分析 OOD:面向对象设计 OOAD:面向对象分析与设计 什么是面向对象?一种分析问题的方式( ...
- 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写
一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...
- 《java入门第一季》之面向对象(方法重写问题)
方法重载的引入:根据一个案例: /* 继承中成员方法的关系: A:子类中的方法和父类中的方法声明不一样,这个太简单. B:子类中的方法和父类中的方法声明一样,这个该怎么玩呢? 通过子类对象调用方法: ...
随机推荐
- 201771030121-王国伟 实验一 软件工程准备—<问题提出与博客首秀>
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE 本次作业要求链接 https://www.cnblogs.com/nwnu- ...
- 用Visual Studio2019自定义项目模板
项目模板简介 众所周知,在我们使用VS新建项目时,都需要选择一个项目模板,如下图: 我们选择完项目模板进行创建,创建完成之后,可以发现项目中已经包含了一些基础的文件.例如MVC: 可以看到,MVC项目 ...
- 【Hadoop离线基础总结】oozie调度MapReduce任务
目录 1.准备MR执行的数据 2.执行官方测试案例 3.准备我们调度的资源 4.修改配置文件 5.上传调度任务到hdfs对应目录 6.执行调度任务 1.准备MR执行的数据 MR的程序可以是自己写的,也 ...
- 【Linux基础总结】Linux基本命令
Linux基本命令 Linux系统下的文件类型.权限.所属用户与组 文件类型 - (文件) d(目录) ->类似windows系统下的文件夹 l (链接) ->类似windows系统下的快 ...
- Arrays.binarySearch的返回值
如果查找的值包含在数组中,返回搜索的第一个值的下标: 如果查找的值不在数组中,返回(-插入点-1):插入点即为第一个大于此查找值的元素下标 插入点 为将该值插入数组的那一点:即第一个大于此键的元素下标 ...
- Java爬虫Ins博主所有帖子的点赞和评论导出excel
前言 某天朋友说,能不能帮忙扒下ins的博主帖子,要所有帖子的点赞和评论,我本来准备让会python的同事写的,最后还是自己顺手写了,本来一开始准备用nodejs或者js写的,想着前端本地测试代理和导 ...
- Mysql常用sql语句(22)- insert 插入数据
测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 终于讲完基础的查询语句了...这篇讲的就是插入数 ...
- uni-app高分开源电影项目源码案例分析,支持一套代码发布小程序、APP平台多个平台(前端入门必看)
uni-app-Video 一个优秀的uni-app案例,旨在帮助大家更快的上手uni-app,共同进步! Features 代码编写简洁,注释清晰,快速入门必备: 支持在线模糊搜索: 程序类目懒 ...
- SpringMVC底层执行原理
一个简单的HelloSpringMVC程序 先在web,xml中注册一个前端控制器(DispatcherServlet) <?xml version="1.0" encodi ...
- PG修改参数方法
1.查看参数文件位置 postgres=# show config_file; config_file ---------------------------------- /data/pgsql_d ...