1.static
http://blog.csdn.net/lzm18064126848/article/details/53769778
2.Abstact
http://liuzxc.github.io/blog/java-advance-01/
抽象类 abstract class Test {}
抽象方法 abstract void test();
抽象类不能被实例化,只能是被继承,如果子类没有实现抽象父类的抽象方法,那么其也是抽象类,也就无法实例化
抽象类可以拥有任意范围的成员数据,同时也可以拥有自己的非抽象方法
子类中的抽象方法不能与父类的抽象方法同名
http://blog.csdn.net/xiaojianpitt/article/details/2705369
abstract 关键字不能应用于 static、private 或 final 方法,因为这些方法不能被重写,因此,不能在子类中实现。
final 类的方法都不能是 abstract,因为 final 类不能有子类。
/*核心:子类实现抽象父类所有方法才能实例化*/
3.interface 接口---自上而下 接口不是类,不能实例接口,只能实例化实现类。实现类必须实现接口的所有方法
Interface的方所有法访问权限自动被声明为public。确切的说只能为public,当然你可以显示的声明为protected、private,但是编译会出错!
接口中可以定义“成员变量”,或者说是不可变的常量,因为接口中的“成员变量”会自动变为为public static final。类命名直接访问:ImplementClass.name。一般不会定义成员变量
接口中不存在实现的方法。也就说只有抽象方法。
实现接口的非抽象类必须要实现该接口的所有方法。抽象类可以不用实现。
不能使用new操作符实例化一个接口,但可以声明一个接口变量,该变量必须引用(refer to)一个实现该接口的类的对象。
可以使用 instanceof 检查一个对象是否实现了某个特定的接口。例如:if(anObject instanceof Comparable){}。
在实现多接口的时候一定要避免方法名的重复
接口和抽象类的区别
http://blog.csdn.net/chenssy/article/details/12858267
抽象类---自下而上 继承---多态性
接口---自上而下
抽象类 是对象的抽象 是拥有共同属性和行为的对象抽象
接口 是行为的抽象 行为本身所属的对象之间可以没有关系
http://www.importnew.com/12399.html
什么时候用抽象类或者接口
如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧。
如果你想实现多重继承,那么你必须使用接口。由于Java不支持多继承,子类不能够继承多个类,但可以实现多个接口。因此你就可以使用接口来解决它
4.final
http://liuzxc.github.io/blog/java-advance-01/
final表示最终的意思,因此final方法不能被重写,final类不能被继承。
final variable就是一个常量,一旦初始化就不可以改变
如果在声明的时候没有初始化就一定要在构造函数中初始化,否则是会抛出编译错误
在声明阶段未初始化的static final variable只能在静态代码块中被初始化
5.transient
序列化过程中忽略成员变量---可以手动实现序列化过程
http://blog.csdn.net/lzm18064126848/article/details/53782755
6.native
不是java语言写的方法,是靠近操作系统底层语言写的供java调用的方法
7.volatile
原子操作
8.synchronized
同步锁 在单例模式中有双重锁写法就是结合volatile和synchronized
9.public private protected
权限访问修饰符
http://www.cnblogs.com/hellojava/archive/2013/02/27/2935450.html
10.extends、implements
类继承 实现