Java接口特性总论
来源:互联网 发布:软件license怎么查看 编辑:程序博客网 时间:2024/06/03 13:39
Java接口特性总论
1. Java接口不是类,尤其不能使用new运算符实例化一个接口。例如:X = new OneInterface(...); //ERROR
2. 可以声明接口的变量(虽然不能构造接口对象)。例如:OneInterface X; // RIGHT
3. 接口变量必须引用(或指向)实现了接口的类对象。例如:X = new XxxxObject(); //XxxxObject implements OntInterface
4. 与检查某个类是否属于某个特定类的子类方法一样,也可以使用instanceof检查一个对象是否实现了某个特定的接口。例如:if(anObject instanceof Comparable) {...}
5. 与类的继承关系一样,接口也可以被扩展。这里容许存在多条具有较高通用性的接口到较高专用性的接口的链。例如,假设有一个称为Moveable的接口:
public interface Moveable
{
void move(double x, double y);
}
然后,可以以它为基础扩展一个叫做Powered的接口:
public interface Powered extends Moveable
{
double milesPerGallon();
}
6. 接口中不可以包含实例域或静态方法,但却可以包含常量。例如:
public interface Powered extends Moveable
{
double milesPerGallon();
Double SPEED_LIMIT = 95; //a public static final constant
}
7. 接口中的方法都自动地被设置为public一样,接口中的域将被自动设为public static final。
8. 与C++多继承类似,虽然每个Java类只能够具有一个超类,但却可以实现多个接口。其目的是为了提供灵活性。不过有个与C++有不同的地方,例如:
public interface A {
void fun();
}
public interface B {
void fun();
}
public class TestInterface implements A, B {
@Override
public void fun() {
// TODO Auto-generated method stub
System.out.println("fun");
}
public static void main(String args[]){
TestInterface a = new TestInterface();
a.fun();
}
}
以上代码也会编译通过并正常运行,这就表示java的接口机制与C++多继承是不同的,C++如果要做同样的事情一定要用到space方式,并且一定是多态的(如果您知道非多态实现希望您能教授一下本人!小小的猜测一下,难道用函数指针实现?那样会很麻烦诶!)。而java中的interface技术只是用来描述类具有什么功能,所以说interface并不是类(当然与抽象类也完全不一样)。有人说接口只是用来强调类的功能的,本人表示同意。
9. 接口可以只有常量属性或方法。
- Java接口特性总论
- Java学习总论(转)
- Java学习总论(转)
- Java学习总论
- Java学习总论
- Java数据结构总论
- Java学习总论
- Java接口特性
- Java接口特性
- java中接口特性
- java 接口特性
- Java接口新特性
- Java接口特性学习
- 总论
- Java学习总论(新手)
- Java新特性:接口新特性
- Java中接口的特性
- java抽象类、接口特性
- shell编程与应用自测题(出自linux面试题)
- 单编译framework相关模块
- Have to Study
- 破解:已成功与服务器建立连接,但是在登录过程中发生错误。Microsoft SQL Server, Error: 233
- 从简单的算法初探过程汇编 栈帧指针
- Java接口特性总论
- jni中 对c++类的重新封装
- Document段 DocumentFragment
- 背包问题(01背包,完全背包,多重背包)
- apache禁止访问
- NBUT 2012 Summer Training -1 / [B] Birdlike Angry Pig
- 【字符串匹配】KMP算法之道
- Linux内核中读写文件数据的方法
- POJ 1191 棋盘分割