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入门第二季》第四章 多态的更多相关文章

  1. Java入门第二季——第4章 多态

    第4章 多态 多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作 4-1 Java 中的多态 注意:不能通过父类的引 ...

  2. Java入门第二季第2章封装

    什么是 Java 中的内部类 问:什么是内部类呢? 答:内部类( Inner Class )就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. 问:那为什么要将一个类定义在另一个类里 ...

  3. 《Java入门第二季》第一章 类和对象

    什么是类和对象 如何定义 Java 中的类 如何使用 Java 中的对象 Java中的成员变量和局部变量1.成员变量:在类中定义,描述构成对象的组件. 2.局部变量:在类的方法中,用于临时保存数据. ...

  4. Java入门 第二季第三章 继承

    这是我学习慕课网Java课程的笔记,原视频链接为:http://www.imooc.com/learn/124 3-1 Java 中的继承  ★ 概念:继承是类与类的一种关系,是一种 "is ...

  5. JAVA入门第二季(mooc-笔记)

    相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第二季&g ...

  6. Java入门第二季学习总结

    课程总概 该门课程作为java入门学习的第二季,是在有一定的java基础上进行的进一步学习.由于该季涉及到了java的一些核心内容,所以相对第一季来说,课程难度有所提升.大致可将该季的课程分为五部分: ...

  7. JAVA入门第二季 第一章 类和对象

    面向对象编程 Object Oriented Programming OOP 第一.什么是类和对象 在具体说明类和对象之前,先说说别的. 眼睛在人类身体上最为有用的器官.如果一个没有了眼睛,这个人与世 ...

  8. Java入门第二季第一章类和对象知识点

    Java 中的 static 使用之静态方法 1. 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员.如: 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问 ...

  9. 《Java入门第二季》第三章 继承

    Java 中的继承1.作用:代码复用. 2.语法:extends关键字. 3.注意点:私有(private)财产(methods.fields)不可继承. Java 中的方法重写 Java 中的继承初 ...

随机推荐

  1. Java创建数组的三种方法

    ■ 第一种: int[] arr=new int[6]; arr[0] = 1; arr[1] = 2 arr[2] = 3; arr[3] = 4; arr[4] = 5; arr[5] = 6; ...

  2. jQuery回溯

    1.jQuery有个很好用的方法是 end(); 2.在进行链式操作时,使用end方法,可以回溯到上一个jQuery对象. 3.实现原理: jQuery内部有一个对象栈,当形成新的对象时,会将新对象推 ...

  3. Chrome浏览器下CSS字体大小设置小于12px无效问题

    当字体大小被设置小于12px时,IE.firefox可以起作用.但chrome中仍然显示为12px大小. 解决方法为: html, body {     -webkit-text-size-adjus ...

  4. [转帖]双剑合璧:CPU+GPU异构计算完全解析

    引用自:http://tech.sina.com.cn/mobile/n/2011-06-20/18371792199.shtml 这篇文章写的深入浅出,把异构计算的思想和行业趋势描述的非常清楚,难得 ...

  5. 【BZOJ2157】旅游 树链剖分+线段树

    [BZOJ2157]旅游 Description Ray 乐忠于旅游,这次他来到了T 城.T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接.为了方便游客到达每个景点但又为了节约成本 ...

  6. mysql load data导入脚本

    # !/bin/bash ############中文说明###################### #本程序的一些提示需要中文支持,如系统没有安装中文包,请先安装:yum -y groupinst ...

  7. 解读 Android TTS 语音合成播报

    随着从事 Android 开发年限增加,负责的工作项目也从应用层开发逐步过渡到 Android Framework 层开发.虽然一开始就知道 Android 知识体系的庞大,但是当你逐渐从 Appli ...

  8. 【HTTP header】【Access-Control-Allow-Credentials】跨域Ajax请求时是否带Cookie的设置

    1. 无关Cookie跨域Ajax请求 客户端 以 Jquery 的 ajax 为例: $.ajax({ url : 'http://remote.domain.com/corsrequest', d ...

  9. T-SQL数据库备份

    /*1.--得到数据库的文件目录 @dbname 指定要取得目录的数据库名 如果指定的数据不存在,返回安装SQL时设置的默认数据目录 如果指定NULL,则返回默认的SQL备份目录名 */ /*--调用 ...

  10. ubuntu下安装运行colmap

    从源码安装 colmap可以在主流的系统windows,mac,linux安装 从github上获取colmap的最新源码 git clone https://github.com/colmap/co ...