《Java入门第二季》第四章 多态
Java 中的多态
1、引用的多态:意思就是父类的句柄既可以持有本类的对象,也可以持有子类的对象。
2、方法的多态:注意点是当父类句柄持有子类对象的时候,无法调用子类特有的方法。
多态中的引用类型转换
1、重写override的时候有个典型的向下转换,并且在转换之前执行了检查。
2、检查向下转换安全性的另一个方法:父对象 instanceof 子类。
Java 中的抽象类
1、通常用接口取代抽象类:a)两者都可以作为子类对象的持有者。b)两者都可以约定子类必须实现的方法。c)实现接口相比继承抽象类复杂度更低。
2、接口和抽象类的差异在于:抽象只能单继承,而一个类可以实现多个接口。
Java 中的接口
1、接口规定了一批类所需要遵守的规范,规定类里必须提供某些方法。
2、接口中的属性都是常量,即使定义时不显示设置public static final,系统也会自动加上。(并且不加是一种比较好的习惯,不做多余的事情。)
3、接口中的方法都是抽象方法,遵守一个接口就必须实现接口中的方法。
4、使用接口:类实现接口、作为对象持有者、与匿名内部类配合使用。
5、接口的命名规范:要与类区分,通常I开头或者InterfaceXX
ps:参考阿里的开发手册,接口规范Xxx配合XxxImpl,方法直接void f()而不要加上public abstract等前缀,接口常量也是一样,不要加多余的前缀。
匿名内部类(经常与接口配合使用)
/**
* Created by xkfx on 2017/3/11.
*/
public class TestAnimal {
public static void main(String[] args) {
// 使用匿名内部类的第一种方式
Animal a1 = new Animal() {
@Override
public void run() {
System.out.println("使用匿名内部类的第一种方式");
}
};
a1.run();
// 使用匿名内部类的第二种方式
new Animal() {
@Override
public void run() {
System.out.println("使用匿名内部类的第二种方式");
}
}.run();
}
}
/**
* ┏┓ ┏┓
* ┏┛┻━━━┛┻┓
* ┃ ┃
* ┃ ━ ┃
* ┃ > < ┃
* ┃ ┃
* ┃... ⌒ ... ┃
* ┃ ┃
* ┗━┓ ┏━┛
* ┃ ┃ Code is far away from bug with the animal protecting
* ┃ ┃ 神兽保佑,代码无bug
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┗━━━┓
* ┃ ┣┓
* ┃ ┏┛
* ┗┓┓┏━┳┓┏┛
* ┃┫┫ ┃┫┫
* ┗┻┛ ┗┻┛
*/
UML 简介(用的并不多)
1、用例图:表达用户需求。
2、序列图:对象间的交互关系。
3、类图:最常用。
《Java入门第二季》第四章 多态的更多相关文章
- Java入门第二季——第4章 多态
第4章 多态 多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作 4-1 Java 中的多态 注意:不能通过父类的引 ...
- Java入门第二季第2章封装
什么是 Java 中的内部类 问:什么是内部类呢? 答:内部类( Inner Class )就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. 问:那为什么要将一个类定义在另一个类里 ...
- 《Java入门第二季》第一章 类和对象
什么是类和对象 如何定义 Java 中的类 如何使用 Java 中的对象 Java中的成员变量和局部变量1.成员变量:在类中定义,描述构成对象的组件. 2.局部变量:在类的方法中,用于临时保存数据. ...
- Java入门 第二季第三章 继承
这是我学习慕课网Java课程的笔记,原视频链接为:http://www.imooc.com/learn/124 3-1 Java 中的继承 ★ 概念:继承是类与类的一种关系,是一种 "is ...
- JAVA入门第二季(mooc-笔记)
相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第二季&g ...
- Java入门第二季学习总结
课程总概 该门课程作为java入门学习的第二季,是在有一定的java基础上进行的进一步学习.由于该季涉及到了java的一些核心内容,所以相对第一季来说,课程难度有所提升.大致可将该季的课程分为五部分: ...
- JAVA入门第二季 第一章 类和对象
面向对象编程 Object Oriented Programming OOP 第一.什么是类和对象 在具体说明类和对象之前,先说说别的. 眼睛在人类身体上最为有用的器官.如果一个没有了眼睛,这个人与世 ...
- Java入门第二季第一章类和对象知识点
Java 中的 static 使用之静态方法 1. 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员.如: 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问 ...
- 《Java入门第二季》第三章 继承
Java 中的继承1.作用:代码复用. 2.语法:extends关键字. 3.注意点:私有(private)财产(methods.fields)不可继承. Java 中的方法重写 Java 中的继承初 ...
随机推荐
- 《C++ Primer Plus》10.3 类的构造函数和析构函数 学习笔记
10.3.1 声明和定义构造函数构造函数原型:// constructor prototype with some default argumentsStock(const string &c ...
- linux的setup命令设置网卡和防火墙等
以前在centos上配置网卡都是纯命令行,今天发现linux原来还有一个setup那么好用的命令,真是相见恨晚,以后防火墙.网卡.其他网络配置.系统配置(开机启动项)都可用他来完成了
- 免费在线的web性能测试网站
由于需要测试网站并发,所以去百度搜了搜,最开始找了个webkaka结果告知,已下线,好像是个很好的在线网站.现在只有网站速度诊断的http://pagespeed.webkaka.com/
- C++ primer(十三)--类继承、构造函数成员初始化、虚函数、抽象基类
一.基类 从一个类派生出另一个类时,原始类称为基类,继承类称为派生类. 派生类对自身基类的private成员没有访问权限,对基类对象的protected成员没有访问权限,对派生类对象的(基类之 ...
- Docker源码分析(一):Docker架构
1 背景 1.1 Docker简介 Docker是Docker公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议.目前,Docker可以在容器内 ...
- synchronized将任意对象作为对象监视器
多个线程调用同一个对象中的不同名称的synchronized同步方法或synchronized(this)同步代码块时,调用的效果就是按顺序执行,也就是同步的,阻塞的.这说明synchronized同 ...
- Vue如何引入远程JS文件
直接在dom上操作: export default { mounted() { const s = document.createElement('script'); s.type = 'text/j ...
- 动态设置progressBar的进度
progressDrawable = this.getResources().getDrawable(R.drawable.image); progressDrawable.setBounds(mSe ...
- Yii2中省市三级联动(栏目联动)
先从表的设计开始: 表的结构: CREATE TABLE `global_region` ( `region_id` smallint(5) unsigned NOT NULL AUTO_INCREM ...
- php基础:面向对象
一.public.private.protected访问修饰符 public:任何都可以访问(本类.子类.外部都可以访问) protected:本类.子类都可以访问(本类.子类均可访问) privat ...