java5
- 1:final关键字(掌握)
- (1)是最终的意思,可以修饰类,方法,变量。
- (2)特点:
- A:它修饰的类,不能被继承。
- B:它修饰的方法,不能被重写。
- C:它修饰的变量,是一个常量。
- (3)面试相关:
- A:局部变量
- a:基本类型 值不能发生改变
- b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的
- B:初始化时机
- a:只能初始化一次。
- b:常见的给值
- 定义的时候。(推荐)
- 构造方法中。
- 2:多态(掌握)
- (1)同一个对象在不同时刻体现出来的不同状态。
- (2)多态的前提:
- A:有继承或者实现关系。
- B:有方法重写。
- C:有父类或者父接口引用指向子类对象。
- 多态的分类:
- a:具体类多态
- class Fu {}
- class Zi extends Fu {}
- Fu f = new Zi();
- b:抽象类多态
- abstract class Fu {}
- class Zi extends Fu {}
- Fu f = new Zi();
- c:接口多态
- interface Fu {}
- class Zi implements Fu {}
- Fu f = new Zi();
- (3)多态中的成员访问特点
- A:成员变量
- 编译看左边,运行看左边
- B:构造方法
- 子类的构造都会默认访问父类构造
- C:成员方法
- 编译看左边,运行看右边
- D:静态方法
- 编译看左边,运行看左边
- 为什么?
- 因为成员方法有重写。
- (4)多态的好处:
- A:提高代码的维护性(继承体现)
- B:提高代码的扩展性(多态体现)
- (5)多态的弊端:
- 父不能使用子的特有功能。
- 现象:
- 子可以当作父使用,父不能当作子使用。
- (6)多态中的转型
- A:向上转型
- 从子到父
- B:向下转型
- 从父到子
- (7)孔子装爹的案例帮助大家理解多态
- (8)多态的练习
- A:猫狗案例
- B:老师和学生案例
- 3:抽象类(掌握)
- (1)把多个共性的东西提取到一个类中,这是继承的做法。
- 但是呢,这多个共性的东西,在有些时候,方法声明一样,但是方法体。
- 也就是说,方法声明一样,但是每个具体的对象在具体实现的时候内容不一样。
- 所以,我们在定义这些共性的方法的时候,就不能给出具体的方法体。
- 而一个没有具体的方法体的方法是抽象的方法。
- 在一个类中如果有抽象方法,该类必须定义为抽象类。
- (2)抽象类的特点
- A:抽象类和抽象方法必须用关键字abstract修饰
- B:抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类
- C:抽象类不能实例化
- D:抽象类的子类
- a:是一个抽象类。
- b:是一个具体类。这个类必须重写抽象类中的所有抽象方法。
- (3)抽象类的成员特点:
- A:成员变量
- 有变量,有常量
- B:构造方法
- 有构造方法
- C:成员方法
- 有抽象,有非抽象
- (4)抽象类的练习
- A:猫狗案例练习
- B:老师案例练习
- C:学生案例练习
- D:员工案例练习
- (5)抽象类的几个小问题
- A:抽象类有构造方法,不能实例化,那么构造方法有什么用?
- 用于子类访问父类数据的初始化
- B:一个类如果没有抽象方法,却定义为了抽象类,有什么用?
- 为了不让创建对象
- C:abstract不能和哪些关键字共存
- a:final 冲突
- b:private 冲突
- c:static 无意义
- 4:接口(掌握)
- (1)回顾猫狗案例,它们仅仅提供一些基本功能。
- 比如:猫钻火圈,狗跳高等功能,不是动物本身就具备的,
- 是在后面的培养中训练出来的,这种额外的功能,java提供了接口表示。
- (2)接口的特点:
- A:接口用关键字interface修饰
- interface 接口名 {}
- B:类实现接口用implements修饰
- class 类名 implements 接口名 {}
- C:接口不能实例化
- D:接口的实现类
- a:是一个抽象类。
- b:是一个具体类,这个类必须重写接口中的所有抽象方法。
- (3)接口的成员特点:
- A:成员变量
- 只能是常量
- 默认修饰符:public static final
- B:构造方法
- 没有构造方法
- C:成员方法
- 只能是抽象的
- 默认修饰符:public abstract
- (4)类与类,类与接口,接口与接口
- A:类与类
- 继承关系,只能单继承,可以多层继承
- B:类与接口
- 实现关系,可以单实现,也可以多实现。
- 还可以在继承一个类的同时,实现多个接口
- C:接口与接口
- 继承关系,可以单继承,也可以多继承
- (5)抽象类和接口的区别(自己补齐)?
- A:成员区别
- 抽象类:
- 接口:
- B:关系区别:
- 类与类:
- 类与接口:
- 接口与接口:
- C:设计理念不同
- 抽象类:is a,抽象类中定义的是共性功能。
- 接口:like a,接口中定义的是扩展功能。
- (6)练习:
- A:猫狗案例,加入跳高功能
- B:老师和学生案例,加入抽烟功能0
java5的更多相关文章
- Java多线程与并发库高级应用-java5线程并发库
java5 中的线程并发库 主要在java.util.concurrent包中 还有 java.util.concurrent.atomic子包和java.util.concurrent.lock子包 ...
- Java5、Java6、Java7的新特性
Java5 Java 5添加了8个语言特性:泛型,类型安全枚举,注解,自动装箱和拆箱,增强的循环,静态导入,可变参数,协变返回类型. 1.泛型 Generics: 引用泛型之后,允许指定集合里元素的类 ...
- java5、java6、java7、java8的新特性
Java5: 1.泛型 Generics: 引用泛型之后,允许指定集合里元素的类型,免去了强制类型转换,并且能在编译时刻进行类型检查的好处. Parameterized Type作为参数 ...
- Java5 并发学习
在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动.调度.管理线程的一大堆API了.在Java5以后,通过 Executor来启动线程比用Thread的start()更好.在新特征 ...
- Java5中的线程池实例讲解
Java5增加了新的类库并发集java.util.concurrent,该类库为并发程序提供了丰富的API多线程编程在Java 5中更加容易,灵活.本文通过一个网络服务器模型,来实践Java5的多线程 ...
- java5后的并发池
本文可作为传智播客<张孝祥-Java多线程与并发库高级应用>视频的学习记录. 为什么需要并发池 之前写并发的时候 new Thread(new Runnable(){ public voi ...
- java--加强之 Java5的线程并发库
转载请申明出处:http://blog.csdn.net/xmxkf/article/details/9945499 01. 传统线程技术回顾 创建线程的两种传统方式: 1.在Thread子类覆盖的r ...
- 使用java5的注解和Sping/AspectJ的AOP 来实现Memcached的缓存
使用java5的注解和Sping/AspectJ的AOP 来实现Memcached的缓存 今天要介绍的是Simple-Spring-Memcached,它封装了对MemCached的调用,使MemCa ...
- <数据结构与算法分析>读书笔记--利用Java5泛型实现泛型构件
一.简单的泛型类和接口 当指定一个泛型类时,类的声明则包括一个或多个类型参数,这些参数被放入在类名后面的一对尖括号内. 示例一: package cn.generic.example; public ...
- Java5,Java 6,Java 7,Java 8新特性
Java5: 1.泛型 Generics: 引用泛型之后,允许指定集合里元素的类型,免去了强制类型转换,并且能在编译时刻进行类型检查的好处. Parameterized Type作为参数 ...
随机推荐
- 【转载】WEB前端开发规范文档
本文转载自谈笑涧<WEB前端开发规范文档> 为 新项目写的一份规范文档, 分享给大家. 我想前端开发过程中, 无论是团队开发, 还是单兵做站, 有一份开发文档做规范, 对开发工作都是很有益 ...
- Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程
[保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...
- 20145215&20145307信息安全系统设计基础实验报告
20145215&20145307信息安全系统设计基础实验报告 PART1 一.实验原理 交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码.同一个体系结构可以运行不同的操作系统 ...
- Lua和C++交互详细总结
转自:http://cn.cocos2d-x.org/tutorial/show?id=1474 一.Lua堆栈 要理解Lua和C++交互,首先要理解Lua堆栈. 简单来说,Lua和C/C++语言通信 ...
- 设置 github 帐号user.name和邮箱user.email
git config --global user.name username git config --global user.email username@email.com
- Ruby升级的最新方法
今天安装cocoapods时候出现了下面的提示Error installing pods:active support requires Ruby version >= 2.2.0这个需求的意思 ...
- SQL查询为什么不推荐使用select count(*)
select count(1). count(字段名) .count(*) 的区别
- Windows中创建桌面快捷方式
Windows中创建桌面快捷方式 -------------- -------------- -------------- --------------
- 使用IExport进行图片输出出现File creation error
使用IExport进行图片输出(.JPG)时,出现如下异常File creation error. 在ESRI.ArcGIS.Output.ExportJPEGClass.FinishExport ...
- MyBatis源码分析(1)——整体依赖关系图
后续补充更新