一.包
1.概念:Java中的一个package(包)就是一个类库单元,包内包含有一组类,它们在单一的名称空间之下被组织在了一起,这个名称空间就是包名。
2.作用:
(1)把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
(2)如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名予以区别。因此,包可以避免名字冲突。
(3)包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
3.语法:
package pkg1[.pkg2[.pkg3…]];
pkg1 pkg2 pkg3 为文件系统中的文件夹名称,并存在上下级目录关系
包的声明的目的是描述此Java类文件属于哪个包或者哪个文件目录
4.包的使用
语法结构:
import pkg1[.pkg2[.pkg3…]].
pkg1 pkg2 pkg3 为文件系统中的文件夹名称,并存在上下级目录关系
classname 代表所要引入的指定的类
* 代表引入此包下所有的类
包的使用其实就是在一个Java类中使用其他包中的Java类
二.抽象类
1.概念:在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都只是来描述对象的。如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑补充它,那么这样的类我们称它为抽象类。
2.语法:
Public abstract void 方法名();
3.抽象类的作用:
为子类提供共性属性和方法。
4.抽象方法的作用:
强制子类覆盖,否则子类声明为抽象类。
总结:
(1)抽象类不能创建对象,可以声明引用。
(2)抽象类中不一定有抽象方法,而有抽象方法的类一定是抽象类。
(3)继承下,子类必须覆盖父类中抽象方法,否则子类声明为抽象类。
(4)抽象方法,只有方法声明,没有方法实现。
5.抽象类的注意事项:
(1)含有抽象方法的类是抽象类
(2)抽象类中不一定有抽象方法
(3)抽象类不能直接创建对象,必须通过子类实现,所以abstract不能和final一起修饰类
(4)abstract 不能与static、final并列修饰同一个方法
三.接口
1.概念:接口是比抽象类更抽象的一种结构或者类,通常使用 interface 来进行描述
( 用interface后面不跟class. )
2.用implements来实现接口写法
3.interface里面不能有变量,只能用常量,不能有普通方法(有方法来改变它)
接口可以继承多实现,用逗号隔开
接口引用指向被实现的对象
4.接口是一种能力。
应用场景:父类提供的方法个数无法满足子类的需求,可通过实现接口的方式扩充子类能力。
5.接口的规范
实现接口,需要覆盖接口中的所有抽象方法,否则该类声明为抽象类。
覆盖时访问修饰符必须是public。
6.接口多态
(1)概念:使用接口引用指向实现类对象。
(2)注意:接口引用只能调用接口中所声明的方法,如果需要调用实现类中的方法,必须强转为实现类自身类型。
7.常见关系
类与类:单继承
extends 父类名称
类与接口:多实现
implements 接口1,接口2
接口与接口:多继承
extends 接口1,接口2,接口3
8.接口与抽象类的异同:
相同:
都可生成对应的.class文件。
都不能创建对象。
可以声明引用。
都可以使用Object类中的方法。
不同:
接口只能定义公开静态常量,隐式存在public static final
接口只能定义公开抽象方法
没有构造方法、动态代码块、静态代码块



