一、抽象类
1.1、概念
1.2、抽象方法
1.3、不能被实例化
1.4、常见问题
1.5、抽象类和普通类的区别
二、接口
2.1、概念
2.2、面向接口编程思想
2.3、全局常量和抽象方法的简写
2.4、接口的实现 implements
2.5、接口的继承
2.6、注意
如果一个接口要想使用,必须依靠子类。 子类(如果不是抽象类的话)要实现接口中的所有抽象方法。
2.7、接口和抽象类的区别(面试常问)
三、多态
3.1、概念
多态:就是对象的多种表现形式,(多种体现形态)
3.2、多态的体现
3.3、多态的使用:对象的类型转换
四、instanceof
五、Object类
5.1、概念
5.2、Object的多态
使用Object可以接收任意的引用数据类型
5.3、toString
建议重写Object中的toString方法。 此方法的作用:返回对象的字符串表示形式。
Object的toString方法, 返回对象的内存地址
5.4、equals
六、内部类
6.1、概念
6.2、成员内部类
6.3、局部内部类
注意:局部内部类就像是方法里面的一个局部变量一样,是不能有public、protected、private以及static修饰符的。
6.4、匿名内部类
注意:
6.5、静态内部类
静态内部类也是定义在另一个类里面的类,只不过在类的前面多了一个关键字static。
静态内部类是不需要依赖于外部类对象的,这点和类的静态成员属性有点类似,并且它不能使用外部类的非static成员 变量或者方法.
七、包装类
7.1、概述
在Java中有一个设计的原则“一切皆对象”,那么这样一来Java中的一些基本的数据类型,就完全不符合于这种设计思 想,因为Java中的八种基本数据类型并不是引用数据类型,所以Java中为了解决这样的问题,引入了八种基本数据类型 的包装类。
7.2、包装类的特点
1、这八个包装类都存在java.lang包下,使用时不需要导包。
2、六个与数字有关的包装类,都继承了Number类。将Number类下 xxxValue() 重写, 将一个包装类类型转化为该方法对应的基本类型(拆包)。
3.八个包装类都实现了Serializable, Comparable接口,因此都有这两个接口中定义的方法。支持序列化和反序列化。
4、除Character类,其他七个类每个类都已一个含有自己类型参数的构造方法以及一个含有String 类型的构造方法重载。Character 类中只有一个含有char 类型参数的构造方法。
5、虽然包装类是类,但是赋值时不一定需要通过构造函数。
7.3、装箱和拆箱操作
7.4、字符串转换
7.5、Integer
八、可变参数
九、递归
递归,在数学与计算机科学中,是指在方法的定义中使用方法自身。也就是说,递归算法是一种直接或者间接调用自身方 法的算法。
递归流程图如下: