java学习第七天
目标
1、 复合
2、 继承
3、 重写
4、 Super
5、 final
一、类与类的关系
参考: http://www.cnblogs.com/liuling/archive/2013/05/03/classrelation.html
复合: has a
1、 依赖: 形参、局部变量
2、 关联: 属性
3、 聚合: 属性整体与部分
4、 组合: 属性具有生命周期的一致性的整体与部分
继承: is a extends
实现: implements
二、继承: inheritance
1、理解
类: 对同种事物的抽象
继承: 在类的基础上进一步的抽象,对同一批类的抽象
延续和扩展父类的一切信息(包括私有)
2、extends
1)、被继承的类:父类 |基类|超类
2)、继承的类: 子类|派生类
注意: JAVA中仅支持单继承,一个子类仅有一个父类,一个父类可以存在多个子类。
3、延续和扩展
1)、延续:
直接使用复用父类的信息,前提存在访问权限
2)、扩展
a)、覆盖: 父类不满足子类的要求,按需覆盖
b)、新增: 父类没有,子类按需添加
4、单继承
Java 只支持单继承,extends后面只能写一个类
错误的写法:
三、重写 override
1、规则
在子类中,对父类方法进行改写,规则如下:
1)、方法签名相同: 方法名+形参
2)、返回类型<=
a)、基本类型|void 必须相同,否则编译错误
b)、引用类型,<= 可以是子类
c)、访问权限>=
最简单方法的就是一样,拷贝父亲的方法,改变里面的内容即可。
2、检查
如何检查为重写呢?
1)、使用注解@Override
2)、在父类中定义方法,调用一下,调用到了,就是重写,调用不到就不是重写
3、编译确定方法表
编译看类型运行找对象,Java分编译期与运行期
1)、编译期: 检查语法(确定调用的方法表)、适当优化
确定调用的方法表–>就近最有原则
2)、运行期在编译期的基础再运行代码,调用具体的对象的方法。
3)、改变为:
a、编译错误
b、注意结果为: f print(int)
如果使用子类对象调用方法,已经重写的调用重写的方法,否则调用父类的方法、新增方法。
4、不会重写
1)、属性不会重写
2)、static private不会重写
3)、final 不能重写
四、查看api
api: application programming interface 字典,生成出来权限>=protected
1、查找类
1)、定为包名.类
2)、查看继承体系、接口 -->延续父类的方法
3)、通读第一段(前几句)说明,了解类的特点和作用
2、查找构造器
1)、能够找到构造器java.lang.Stringà根据构造器创建对象
2)、找不到构造器如java.lang.Runtime或 java.lang.Math
a)、此类为工具类,方法多数为静态方法,不用创建对象,说明类.调用方法即可
b)、此类不允许外部创建对象,需要查找一个公共的静态方法,返回该类的实例
3、查找方法
1)、方法名 2)、方法签名 (形参) 3)、返回值类型 4)、是否为静态
查看的描述(简短描述、详细描述、连蒙带猜式的看源码)
4、Object
老祖宗, equals() hashcode() 和 toString() 被子类延续使用
1)、equals() à比较相等
equals在默认Object中就是比较地址是否相同。
String的equals()进行重写比较地址
2)、hashCode() à返回地址转换码
3)、toString() à字符串的表现形式
五、实例化过程
先父类后子类先静态后成员
六、super
在子类中,指代父类对象。在子类的成员方法、构造器存在
1、super. 属性 | 方法–>指代父类的方法|属性,必须存在访问权限。
2、super([实参]) –>子类的构造器首行,显式的调用父类指定的构造器。默认的情况下 : 父类空构造。
七、final
final 最终的
1、常量属性: 值一旦确定不可改变
赋值:
1)、声明的同时赋值
2)、成员常量:
3)、静态常量
2、类:此类不能被继承
3、方法: 此方法不能被重写
java学习第七天的更多相关文章
- 从.Net到Java学习第七篇——SpringBoot Redis 缓存穿透
从.Net到Java学习系列目录 场景描述:我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回.这个时候如果我们查询的某一个数 ...
- [转载]Java学习这七年
从2005那会做自动化测试开始接触Java开始,至今近7年.今天正好项目结束,趁机整理下思路,确定后续方向. 前三个年头基本上集中于Java基础的学习,包括设计模式,从完全不懂,到看的懂但似乎又不懂, ...
- java学习第七天2020/7/12
一. java继承使用的关键字是 extend class 子类 extends 父类{} 举一个类的例子: public class person { public String name; pu ...
- Java学习笔记七——数组工具类Arrays
数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...
- Java学习第七篇:与运行环境交互
目录 一.与用户互动 1.main方法形参 2.使用Scanner类获取输入 3.使用BufferedReader类获取输入 二.常用类 1.System类和Runtime类 2.String, St ...
- Java 学习笔记 (七) Java 参数
head first java page 74 实参: argument 形参: parameter 方法会运用形参, 调用的一方会传入实参. 实参是传给方法的值.当它传入方法后就成了形参, 参数跟局 ...
- Java学习笔记七(目录操作)
1.介绍 上一篇博客介绍的是java中经常使用的操作文件的方式,本篇博客着重解说一下,在Java中是怎样来操作目录的.主要是利用的是Java.IO包以下的File类,本篇博客着重解说一下该类的构造函数 ...
- Java学习笔记七:Java的流程控制语句之switch
Java条件语句之 switch 当需要对选项进行等值判断时,使用 switch 语句更加简洁明了.例如:根据考试分数,给予前四名不同的奖品.第一名,奖励笔记本一台:第二名,奖励 IPAD 2 一个: ...
- JAVA学习(七):方法重载与方法重写、thiskeyword和superkeyword
方法重载与方法重写.thiskeyword和superkeyword 1.方法重载 重载可以使具有同样名称但不同数目和类型參数的类传递给方法. 注: 一是重载方法的參数列表必须与被重载的方法不同,而且 ...
随机推荐
- jQuery Easing动画效果扩展(转)
jQuery API提供了简单的动画效果如淡入淡出以及自定义动画效果,而今天我给大家分享的是一款jQuery动画效果扩展增强插件jquery.easing.js,使用该插件可以实现直线匀速运功.变加速 ...
- Oracle - PL/SQL Commands
第一章:日志管理 1.forcing log switches sql> alter system switch logfile; 2.forcing checkpoints sql> a ...
- 快速将excel数据保存到Oracle数据库中【转】
我们在工作中,也许会碰到以下情况,客户或者同事发来需要调查的数据,并不是dmp文件,而是excel文件,此时通常是一张表,少量几条记录.最近我恰好碰到了这种情况,所以做了些调查,不敢藏私,拿出来跟大家 ...
- API 进程、线程函数
CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 ConnectNamedPipe 指 ...
- 转: 详解css中的display属性
在一般的CSS布局制作时候,我们常常会用到display对应值有block.none.inline这三个值.下面我们来分别来认识和学习什么时候用什么值.这里通过CSS display知识加实例讲解方法 ...
- 在JavaScript 自定义对象来模拟Java中的Map
直接看代码: //模拟一个Map对象 function Map(){ //声明一个容器 var container={}; //定义一个put方法,向容器中存值 this.put=function(k ...
- ASP.Net Chart Control -----Bar and Column Charts
StackedBar StackedColumn StackedArea <asp:CHART id="Chart1" runat="server" H ...
- 【转】linux /centos 中OpenSSL升级方法详解
相关软件下载地址 Apache:http://httpd.apache.org/ Nginx:http://nginx.org/en/download.html OpenSSL:http://www. ...
- RPI学习--环境搭建_刷卡+wiringPi库安装
1,镜像地址 http://www.raspberrypi.org/downloads/ 2,Windows下刷写工具 Win32 Disk Imager 3,安装wiringPi库 (这里在连网状态 ...
- static inline
今天看到了这样一段代码, static inline BOOL IsEmpty(id thing) { return thing == nil || [thing isEqual:[NSNull nu ...