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:子类中的方法和父类中的方法声明一样,这个该怎么玩呢? 通过子类对象调用方法: ...
随机推荐
- 值得学习的C/C++开源项目 持续更新
值得学习的C语言开源项目 持续更新 文章目录 值得学习的C语言开源项目 持续更新 - 1. Webbench - 2. Tinyhttpd - 3. cJSON - 4. CMockery - 5. ...
- 在一段字符串中的指定位置插入html标签,实现内容修改留痕
客户需求:实现内容修改留痕,并且鼠标移动到元素时,显示修改人和修改时间. (其实呢本人觉得这个如果是静态的页面,或者是后端拼接好的html,都很好实现,如果让前端动态实现就......) 前端实现的方 ...
- JS理论-:一只tom猫告诉你构造函数 实例 实例原型 实例原型的实例原型是什么
参考地址:https://github.com/mqyqingfeng/Blog/issues/2 感谢这位大佬 下面说说我的理解: 第一,看下人物: tom--一只叫tom的猫 Cat()--猫的构 ...
- redis主从复制、主从延迟知几何
本片章节主要从 redis 主从复制延迟相关知识及影响因素做简要论述. 1.配置:repl-disable-tcp-nodelay 也即是TCP 的 TCP_NODELAY 属性,决定数据的发送时机. ...
- 【原创】Linux信号量机制分析
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- Java openrasp学习记录(一)
前言: 最近一直在做学校实验室安排的项目,太惨了,没多少时间学习新知识,不过rasp还是要挤挤时间学的,先从小例子的分析开始,了解rasp的基本设计思路,后面详细阅读openrasp的源码进行学习!欢 ...
- Codeforces1141E(E题)Superhero Battle
A superhero fights with a monster. The battle consists of rounds, each of which lasts exactly nn min ...
- MySQL 间隙锁
一.根据案例二:不同索引加锁顺序的问题,模拟重现死锁(详细操作步骤) 1.RR级别下,更新操作默认会加行级锁,行级锁会对索引加锁 2.如果更新语句使用多个索引,行级锁会先锁定普通索引,再锁定聚簇索引 ...
- H3C S5500V2交换机误格式化恢复
一.格式化后,bin文件及视图全部被删除需要联系H3C客服报交换机后面的序列号,然后根据工单中给你的账号密码去H3C官网下载对应的软件包. 二.下载3CDaemon使用TFTP方式将解压出来的.ipe ...
- sql语句 怎么从一张表中查询数据插入到另一张表中?
sql语句 怎么从一张表中查询数据插入到另一张表中? ----原文地址:http://www.phpfans.net/ask/MTc0MTQ4Mw.html 比如我有两张表 table1 字段 un ...