接口的概述与特点 A:interface B:特点 a:接口用关键字interface表示 *interface 接口名 {} b:类实现接口用implements表示 接口名 {} *class 类名 implements 接口名 {} *接口中的方法都是抽象的 c:接口不能实例化,调用抽象方法是没有意义的 *那么如何实例化呢? *按照多态的方法来实现(父类引用指向子类对象) d:接口的子类 *可以是抽象类,但是意义不大 *可以是具体类,但要重写接口中的所有抽象方法(推荐使用)
接口中的成员特点 成员变量:只能是常量,并且是静态的公共的 *默认修饰符:public static final *接口都是暴露的 public ,三个关键字位置可以随便换 *建议:自己手动给出 构造方法:接口没有构造方法 成员方法:只能是抽象方法 *默认修饰符:public abstract *建议:自己手动给出
public class indemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
//inter i = new inter();Cannot instantiate the type inter
inter i = new demo();//父类引用指向子类对象
i.pr();
}
}
interface inter{
int num = 10;//默认修饰符:public static final
//punlic inter(){} 接口没有构造方法
public abstract void pr();//接口中的方法都是抽象的
// public void pri(){}
//Abstract methods do not specify a body接口方法没有主体
void pri();//默认修饰符public static
}
class demo implements inter{
/*class demo extends Object implements inter
* 接口中没有构造方法,demo默认继承Object,
* 所以子类构造会默认调用Object的构造方法
*
* 一个类中没有继承任何对象,默认继承Object
* */
public void pr() {
// TODO Auto-generated method stub
//num = 20;
//The final field inter.num cannot be assigned
System.out.print("我实现了接口!!!" + num );
}
public void pri() {//子类重写父类方法,权限必须大于等于父类
// TODO Auto-generated method stub
}
}
abstract class demotest implements inter{}
class demotest0 implements inter{
public void pr() {
// TODO Auto-generated method stub
}
public void pri() {
// TODO Auto-generated method stub
}
}
我以前写接口"interface 接口名 () "时曾经出现这样一个错误
Syntax error, insert "EnumBody" to complete EnumDeclaration
不知道为什么会和枚举产生关系,怎么也想不出哪错了
查了一下
http://stackoverflow.com/questions/13173070/syntax-error-insert-enumbody-to-complete-enumdeclaration这个讲的很好
不过最后不是eclipse编译器的问题,而是我格式写错了,应该这样 “ interface 接口名 {}”