final:
1、final 可以修饰类(表示不允许继承),属性(表示不允许修改),方法(表示不允许重写),不能修饰构造器
2、经final修饰的属性会变为常量,必须得赋初值,可在定义时,构造器内,代码块内
3、如果final修饰的属性是static的,可赋初值的位置有:定义时,静态代码块内,不能在构造器内
(静态属性在类加载执行,而构造器在创建对象实例时才执行,)
4、static final连用不会导致类加载
5、包装类例如Integer等都是final类,都是不能被继承的
抽象类:
1、abstract只能修饰类,方法;
2、抽象类不能被实例化;
3、抽象方法不能有主体;
4、一个类继承了一个抽象类,则必须实现其中的所有抽象方法除非它自己也为抽象类;
5、抽象方法不能用private,static,final来修饰,因为这与重写是相违背的;
接口:
1、接口中可以写属性、方法(抽象方法、默认实现方法但需要关键字default、或static修饰)
2、接口不能被实例化
3、接口中所有方法都是public,接口中抽象方法可以不用abstract修饰(public abstract默认可省略) 接口中所有属性都是public static final 默认可省略
4、实现接口的类,必须实现接口中所有方法alt+enter
5、抽象类实现接口时,可以不实现接口的所有方法
6、一个类可以同时实现多个接口
7、接口可以继承接口,不能继承类
8、接口的修饰符和类相同,public或默认