final、abstract、interface

来源:互联网 发布:ubuntu安装net snmp 编辑:程序博客网 时间:2024/06/05 04:52

final 关键字

·修饰类:   不能继承。

·修饰变量:不能改变其值,经常一起使用static和final来指定一个变量。

·修饰方法:不能被覆盖的方法。


abstract 关键字

·修饰类:    无法实例化的类。

·修饰方法:只含有一个声明,没有方法主体。


【包含抽象方法的类一定是抽象类;抽象类中可包括非抽象方法(具体的方法)。抽象类无法实例化,不能创建对象,只能通过子类继承,然后通过方法覆盖。如果不覆盖抽象方法,子类也必须是抽象类。】


interface 关键字

·我们可以把接口想象成一个“纯”抽象类。接口中的方法都是没有方法体的抽象方法,代表一些基本行为。

·接口也可以包含基本数据类型的数据成员,但它们都默认为static和final(故接口中不能定义变量)。


java允许我们创建“空白的final”,它们属于一些特殊的字段。尽管被声明为final,但却未得到一个初始值。空白final必须在实际使用前得到正确的初始化(在构造器中)。空白的final具备有很到的灵活性。例如:位于类内部的一个final字段现在对每个对象都可以有所不同,同时依然保持其“不变”的本质。


接口这样描述自己:“对于实现我的所有类,看起来都应该像我现在的样子”。因此,才用了一个特定接口的所有代码都知道对于所实现的接口可能会调用的什么方法。所以,我们常把接口用于建立类和类之间的一个“协议”。


0 0