重要知识点:
1.static关键字
2.抽象类和接口
3.final关键字
一、static关键字
1.static可以修饰属性、方法、代码块
2.注:static只能修饰类成员,不能修饰局部变量
二、final关键字
.final可以修饰的成员:
类:不能被继承
变量(属性和局部变量):不能被重新赋值--在声明时赋值或在构造器中赋值系统不会对final属性默认的赋初始值
方法:不能在子类中被覆盖即不能修改
三、抽象类和抽象方法
1.抽象类是抽象方法和非抽象方法的集合
[访问权限控制符] abstract class 类名{ ... }
①抽象类的规则
注:抽象类不能被实例化;其包含的抽象方法必须在其子类中被实现,否则该子类只能声明为abstract;抽象方法不能为static
②一个类必须被声明为抽象类的几种情况:
当一个类中有一个或多个抽象方法时;
当类是一个抽象类的子类,并且没有实现父类的所有抽象方法,即只实现部分;
当一个类实现一个接口,并且不能为全部抽象方法都提供实现时;
2.抽象方法:只有方法声明,没有方法实现的方法
[访问权限控制符} abstract 返回值类型 抽象方法名(参数列表);
四、接口(interface)
【访问权限控制符】 interface 接口名{
接口的成员
}
1.接口中只包含常量和抽象方法,而没有变量和方法的实现
2.接口对类来说是一套规范,是一套行为协议
3.接口可以实现多继承
用接口可以实现混合类型(主类型、副类型),Java中可以通过接口分出主次类型
主类型使用继承,副类型使用接口实现
4.接口可以使方法和实现相分离,降低模块间或系统间的耦合性
5.针对接口编程可以屏蔽不同现间的差异,看到的只是实现好的功能
注:
1.接口不是一个类,没有构造器,不能被实例化
2.接口使用interface关键字来定义,而不是class
3.默认接口:
常量:public static final
抽象方法:public abstract
五、接口和类的关系
类实现接口-----implements
1.为了使用一个接口,你要编写实现接口的类
2.如果一个类要实现一个接口,那么这个类就必须实现接口中所有抽象方法,否则这个类只能声明为抽象类
3.多个无关的类可以实现一个接口,一个类可以实现多个无关的接口
4.一个类可以在继承一个父类的同时,实现一个或多个接口
六、接口和抽象类的对比
1,接口不能含有任何非抽象方法,而抽象类可以
2.类可以实现多个接口,但只能有一个直接父类
3.接口与接口之间可以多继承
4.抽象类可以理解为抽象方法和非抽象方法的混合体,而接口中的方法完全是抽象方法,是一套纯粹的规范。一般来说,有关系的类才能继承同一个抽象类,而无关的类可能有同一个抽象父类,但是无关的类可以实现同一个接口
七、内部类
一个类只会被另一个类所调用,其他类不会使用,内部类可以隐藏实现细节,避免错误的调用。