建议关注收藏,持续更新中……
Java进阶笔记
抽象类
1、什么是抽象类?
类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类。
类本身是不存在的,所以抽象类无法创建对象【无法实例化】
2、抽象类属于什么类型?
抽象类也属于引用数据类型。
3、抽象类怎么定义?
语法:
[修饰符列表] abstract class 类名{
类体;
}
4、抽象类无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的。
5、final和abstract不能联合使用。
6、抽象类的子类可以是抽象类。也可以是非抽象类。
7、抽象类虽然无法实例化,但是抽象类有构造方法,这个构造方法是提供子类使用的。
8、抽象类关联到一个概念:抽象方法。什么是抽象方法?
抽象方法表示没有实现的方法,没有方法体的方法。
特点1:没有方法体,以分号结尾。
特点2:有abstract关键字。
9、抽象类中不一定有抽象方法,抽象方法必须出现在抽象类中。
结论:
一个非抽象的类继承了抽象类,必须将抽象方法实现了.
这里的覆盖或重写也叫做抽象方法的实现.
面试题:java语言中凡是没有方法体的方法都是抽象方法(这句话是错误的)
接口
接口基础语法
1、接口也是一种引用数据类型,编译之后也是一个class字节码文件。
2、接口是完全抽象的,抽象类是半抽象。
3、接口怎么定义?
[修饰符列表] interface 接口名{
}
4、接口支持多继承,一个接口可以继承多个接口。
5、接口中只包含两部分内容:一部分是常量。一部分是抽象方法。
6、接口中所有的元素都是public修饰。
7、接口中的抽象方法定义时,public abstract可以省略不写。
8、接口中的方法都是抽象方法,所以接口中的方法不能有方法体。
9、public static void 可以省略不写。
10、一个非抽象的类,实现接口的时候,必须将接口中所有方法加以实现。
11、一个类可以实现多个接口。
总结:
1、类和类之间叫做继承,类和接口之间叫做实现。实现使用implements关键字完成。继承用extends关键字完成。
2、当一个非抽象的类实现接口的话,必须将接口所有抽象方法全部实现(重写/覆盖)
重点:一个类可以实现多个接口。
继承和实现都存在的话,代码应该怎么写?
extends关键字在前,implements关键字在后。
接口在开发中的作用
接口在开发中的作用类似于多态在开发中的作用。
多态:面向抽象编程,不要面向具体编程,降低程序的耦合度。提高程序的扩展力。
//p353-p384:标记
……
数组
1、Java语言中的数组是一种引用数据类型,不属于基本数据类型,父类是Object。
2、数组实际上是一个容器,可以容纳多个元素。(数组是一组数据的集合)。
3、数组当中可以存储基本数据类型的数据,也可以存储引用数据类型的数据。
4、数组因为是引用类型,所以数组对象是堆内存当中。
5、数组当中如果存储的是Java对象的话,实际上存储的是引用。数组中不能直接存储数组对象。
6、数组一旦创建,在Java中规定,长度不可变。
7、数组分类:一维数组、二维数组……
8、所有数组对象都有length属性(Java自带的),用来获取数组中元素的个数。
9、Java中的数组要求数组中元素类型统一。
10、数组在存储的时候,内存地址是连续的。数组实际上是一种简单的数据结构。
11、所有的数组都是拿第一个方框的内存地址作为整个数组对象的内存地址。
12、数组中每一个元素都是有下标的,下标从0开始,以1递增。最后一个元素下标是length-1
13、数组的优缺点?
优点:查询/查找/检索某个下标上的元素的时效率极高。可以说是查询效率最高的一个数据结构。
缺点:由于为了保证数组中每个元素的内存地址连续,所以在数组上随机删除或增加元素的时候,效率极低,因为很难在空间中找到一块特别大的连续的空间。
14、