目录
包
包-三大作用
1. 区分相同名字的类
包- 打包命令
包-命名规范
包-常用的包
包-引入包
---------------------------------------------------------------------------------------------------------------
访问权限
----------------------------------------------------------------------------------------------------------------
抽象类
(父类中的方法,父类的该方法的具体实现没意义,每种子类的实现都不同)
----------------------------------------------------------------------------------------------------------------
接口
1. 接口中可以有变量,但变量不能用private和protected,只能使用public
a. 接口中的变量,本质上都是static的,而且是final,不管你加不加static、final修饰
b.在Java开发中,我们经常把常用的变量,定义在接口中,作为全局变量使用。
3. 接口是更加抽象的抽象类,抽象类里的方法可以有方法体,接口里的所有方法都没有方法体,接口体现了程序设计的多态和高内聚低耦合的设计思想。
----------------------------------------------------------------------------------------------------------------
实现接口 VS 继承类
Java的继承是单继承,也就设计一个类最多只能有一个父类,这种单继承的机制可以保证类的纯洁性,比c++中的多继承机制简洁。但是不可否认,对子类功能的扩展有一定影响。
还有一点,继承是层级式的,不太灵活(即一个类的改变会导致好几个类同时要做修改)。
(如修改类1,类2、3、4、5都要做修改)这种结构修改某个类就会打破这种继承的平衡,而接口就没有这样的麻烦,因为它只针对实现接口的类才起作用。
2. 所以,实现接口可以在不打破继承关系的前提下,对某个类功能扩展,非常灵活。
----------------------------------------------------------------------------------------------------------------
final
2. 当不希望父类的某个方法被子类覆盖时,可以用final关键字修饰
3. 当不希望类的某个变量的值被修改,可以用final修饰。
b. final修饰的变量又叫常量,变量名一般写成"xxx_xxx_xxx"
4. 当不希望类被继承时,可以用final修饰。