java篇 之 继承
this代表正在使用类的对象(的引用)
java支持重载:允许在同一个类中使用相同的方法名(重载类型只区分参数列表,包括参数 顺序,参数个数,参数数据类型,与方法返回类型无关)
匹配:
- 方法名
- 参数列表类型
- 调用
如果参数列表不匹配,系统如果能自动隐式转换为方法中对应的数据类型,则调用该方 法,只能唯一匹配
构造器:
- 对this的调用必须是第一个语句!(用this能调用同类的其它构造器,包括自己! (避免调用本身造成循环))
- 可以重载
- 只有new,this,super才可以调用构造器,不可以(对象.调用)
- 用super的前提是自己这个类没有写相应的方法才去调用父类的,用this的前提是 自己这个类写了相应的方法(setX9(),setY()......)
- 一旦写了构造器,系统不会在默认生成构造器(无参的)
- 一旦new了就会把它的方法加载好(加载到栈中),可以调用了
- String为引用类型
- 没有初始化,构造器没有赋值,jvm会给属性赋默认值(各种0)
继承:是一种代码复用的技术,java中只支持单继承,不支持多继承
继承还是要少用,付出的代价是空间(不因两个代码相同就用)!
Extends +类名(要继承的)
重写:
子类继承了父类一个方法(此时两者指向同一个方法体),并且重新添加了一点内容, (修改该方法)这时候java系统会自动给这个方法开辟空间,把他的地址给子类, 相当于屏蔽了父类的该方法(此时两者的方法没有关系了,但是super可以调用父 类的该方法)
super调用当前类的父类中的方法(语句必须放第一行与this一样)(它是给子类对 象赋初值)
Java系统检测到相同的方法,会单独开辟一个新空间,存放当前类中这个方法
Person 父类 / 超类 /基类 / 一般类
Lawyer 子类 /子类 /派生类 /特殊类
Lawyer 继承 person
泛华:
Person 是 Lawyer 的泛华
派生:
Person 派生出 Lawyer
Lawyer是Person的一个派生类
拓展:
Lawyer 是person 的一个拓展
去拓展person.......Lawyer
(Father)继承树,(Father)继承层次,(Father)类域
子类继承下来的private变量不可直接访问,只能间接访问(用继承的方法访问,这样效率太低,因为内部要开空间赋值...所以直接访问很有必要)
Protected:为继承而生,开了一个小口,它可以被子类直接访问,不可被外界直接访问
构造器书写习惯:不缺省的构造器写上super,缺省的写this调用自己其它的构造器,再由 其它构造器调用父类的(提高代码复用)(调用顺序先父后子)
对于子类的无参构造器,它默认调用super();就是调用父类的无参构造器,该无参构造器又能调用同类的其它构造器赋值
子类的构造方法必须调用父类的构造方法!如果子类不明写super(),会隐式调用父类无参构造器,或者如果父类只有一个有参构造方法,子类就必须写明调用父类的有参构造方法(否则编译报错)!
静态决定编译是否通过,动态决定调用谁!!!!
public class A{
public void sayHello(){
System.out.println("hello A");
}
public A(){ //静态决定编译是否通过,动态决定调用谁!!!!
this.sayHello();
}
}
public class B extends A{
public void sayHello(){
System.out.println("hello B");
}
public static void main(String[] args){
new B();
}
}
编译运行后的结果是什么?
hello B
New B()调用B的无参构造器,该构造器默认调用父类无参构造器,且this动态指向B!
java篇 之 继承的更多相关文章
- JAVA篇<一> 继承extends(已转移到JAVA总结篇)
前题:如果不经过指出继承,那么所有的类都继承了JAVA中的Object类. 正文: 继承的关键字是:extends,是所有面向对象语言的重要特性. 例public class TestExtends ...
- 关于Java中的继承和组合的一个错误使用的例子
[TOC] 关于Java中的继承和组合的一个错误使用的例子 相信绝大多数人都比较熟悉Java中的「继承」和「组合」这两个东西,本篇文章就主要就这两个话题谈论一下.如果我某些地方写的不对,或者比较幼稚, ...
- java类的继承(基础)
---恢复内容开始--- 这篇随笔和大家讲讲java中类的继承是什么?希望对你们有所帮助. 目录 一.java继承是什么? 二.为什么使用java继承 三.java继承的实现 1.1 java继承的 ...
- 面试总结——Java篇
前言:前期对Java基础的相关知识点进行了总结,具体参看:Java基础和面试知识点.近期由于笔者正在换工作(ing),因此下面将笔者在面试过程中或笔者朋友面试过程中反馈的题目进行总结,相信弄清楚下面题 ...
- 管中窥豹——框架下的SQL注入 Java篇
管中窥豹--框架下的SQL注入 Java篇 背景 SQL注入漏洞应该算是很有年代感的漏洞了,但是现在依然活跃在各大漏洞榜单中,究其原因还是数据和代码的问题. SQL 语句在DBMS系统中作为表达式被解 ...
- javascript面向对象系列第三篇——实现继承的3种形式
× 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [ ...
- JSON总结(java篇)
JSON总结(java篇一) JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于 ...
- java中的继承与oc中的继承的区别
为什么要使用继承? 继承的好处: (1)抽取出了重复的代码,使代码更加灵活 (2)建立了类和类之间的联系 继承的缺点: 耦合性太强 OC中的继承 1.OC中不允许子类和父类拥有相同名称的成员变量名:( ...
- JAVA封装、继承
封装 1.概念: 将类的某些信息隐藏在类的内部,不允许外部程序访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问. 2.好处: a.只能通过规定的方法访问数据 b.隐藏类的实例细节,方便修改和实 ...
随机推荐
- Codeforces 524C.The Art of Dealing with ATM(暴力)
我先采用了智障解法(n * n枚举...刚开始把n看成1000了还以为能过) 理所当然的t了,不过我怀疑优化一下能过?(感觉数据不太行的亚子 然后就是O(n * k * k)的解法,看到好多人快乐二分 ...
- Spring解决bean之间的循环依赖
转自链接:https://blog.csdn.net/lyc_liyanchao/article/details/83099675通过前几节的分析,已经成功将bean实例化,但是大家一定要将bean的 ...
- Carmichael Numbers (快速幂)
当今计算机科学的一个重要的领域就是密码学.有些人甚至认为密码学是计算机科学中唯一重要的领域,没有密码学生命都没有意义. 阿尔瓦罗就是这样的一个人,它正在设计一个为西班牙杂烩菜饭加密的步骤.他在加 ...
- Shell的 for 循环小例子
<1> 上例子 for i in f1 f2 f3; do @echo $i; done 执行结果: f1 f2 f3 但是,请注意:如果是在makefile 中写,要写成这个样子: al ...
- 路飞-后台xadmin配置
xadmin后台管理 安装:luffy虚拟环境下 # >: pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2 ...
- 状态压缩DP入门题
. /*本题为状态压缩题 题目大意 : 一个矩阵里有很多格子,每个格子有两种状态,可以放牧和不可以放牧, 可以放牧用1表示,否则用0表示,在这块牧场放牛,要求两个相邻的方 格不能同时放牛(不包括斜着的 ...
- 如何在IntelliJ Idea中同时启动不同端口的两个实例
在SpringCloud开发过程中需要在一个项目中启用不同的端口,我使用的工具是IDEA 步骤1 创建SpringBoot工程 步骤2 在配置文件中添加如下配置: spring.application ...
- ASP.NET Core Web API 路由的有效使用
ROUTING 在 .NET Core Web API 项目中,我们应该使用属性路由代替传统路由,这是因为属性路由可以帮助我们匹配路由参数名称与 Action 内的实际参数方法.另一个原因是路由参数的 ...
- 普及C组第四题(8.9)
2298. [noip普及组2T4]异或 (File IO): input:gcdxor.in output:gcdxor.out 题目描述 SarvaTathagata是个神仙,一天他在研究数论时, ...
- Demo:基于 Flink SQL 构建流式应用
Flink 1.10.0 于近期刚发布,释放了许多令人激动的新特性.尤其是 Flink SQL 模块,发展速度非常快,因此本文特意从实践的角度出发,带领大家一起探索使用 Flink SQL 如何快速构 ...