支持大黄,javadoc的例子 List list = new Vector(); // List是接口
接口和抽象类都也是声明变量,但是不能实例化 这个变量的实例化必须是一个真实类,这样做的 目的也就是为了OO里的多态啊 如A a1 = new B();
以我拙见,可以用接口构造实例,但仅限于匿名内部类for example: somewhere in Abc.javanew JButton().add(new ActionListener(){ public void actionPerformed(ActionEvent e){ System.out.println("Please tell me if my thought is right"); } }); //Suppose this is the first inner anonymous class in Abc.java.其实,这个类的确切类型是Abc$1 另外,有时候,在其他地方,我们仍然可以使用这些匿名内部类,前提是这些类没有用到其外部类中的东西(特别是局部变量)。for another example: somewhere in Xyz.javanew JButton.addActionListener(new Abc$1());
接口和抽象类都也是声明变量,但是不能实例化.... 请看://抽象类和接口的综合实例//定义了SuperAbstract、SubAbstract两个抽象类和一个接口AsSuper,其中SubAbstract继承了SuperAbstract, //又实现了AsSuper,之后,又定义了一个类p109,他又继承了类SubAbstract,可以 //看到在类中,抽象地实现了接口中的两个方法x()和y(),因为SubAbstract是一个抽象类, //而在p109中,才真正实现了这两个方法, //而SubAbstract中定义的方法b(),就没有实现。abstract class SuperAbstract{ void a(){ System.out.println("defined a() in SuperAbstract."); } abstract void b(); abstract int c(int i); } interface AsSuper{ void x(); void y(); }abstract class SubAbstract extends SuperAbstract implements AsSuper{ public void b(){ System.out.println("in SubAbstract,implements b() from SuperAbstract"); } abstract String f(); abstract void g(); }public class p109 extends SubAbstract{ public void x(){ System.out.println("in mainclass ,must implement x() from interface!"); } public void y(){ System.out.println("in mainclass ,must implement y() from interface!"); } public int c(int i){ System.out.println(i+"in mainclass, implement c() from SuperAbstract."); return i; } public String f(){ return"in mianclass ,implementd f() from SubAbstract."; } public void g(){ System.out.println("in mainclass ,implementd g() from SubAbstract."); } public static void main(String args[]){ p109 instance=new p109(); instance.x(); instance.y(); instance.a(); instance.b(); instance.c(100); System.out.println(instance.f()); instance.g(); } }
List list = new Vector(); // List是接口
这个变量的实例化必须是一个真实类,这样做的
目的也就是为了OO里的多态啊
如A a1 = new B();
public void actionPerformed(ActionEvent e){
System.out.println("Please tell me if my thought is right");
}
}); //Suppose this is the first inner anonymous class in Abc.java.其实,这个类的确切类型是Abc$1
另外,有时候,在其他地方,我们仍然可以使用这些匿名内部类,前提是这些类没有用到其外部类中的东西(特别是局部变量)。for another example: somewhere in Xyz.javanew JButton.addActionListener(new Abc$1());
请看://抽象类和接口的综合实例//定义了SuperAbstract、SubAbstract两个抽象类和一个接口AsSuper,其中SubAbstract继承了SuperAbstract,
//又实现了AsSuper,之后,又定义了一个类p109,他又继承了类SubAbstract,可以
//看到在类中,抽象地实现了接口中的两个方法x()和y(),因为SubAbstract是一个抽象类,
//而在p109中,才真正实现了这两个方法,
//而SubAbstract中定义的方法b(),就没有实现。abstract class SuperAbstract{
void a(){
System.out.println("defined a() in SuperAbstract.");
}
abstract void b();
abstract int c(int i);
}
interface AsSuper{
void x();
void y();
}abstract class SubAbstract extends SuperAbstract implements AsSuper{
public void b(){
System.out.println("in SubAbstract,implements b() from SuperAbstract");
}
abstract String f();
abstract void g();
}public class p109 extends SubAbstract{
public void x(){
System.out.println("in mainclass ,must implement x() from interface!");
}
public void y(){
System.out.println("in mainclass ,must implement y() from interface!");
}
public int c(int i){
System.out.println(i+"in mainclass, implement c() from SuperAbstract.");
return i;
}
public String f(){
return"in mianclass ,implementd f() from SubAbstract.";
}
public void g(){
System.out.println("in mainclass ,implementd g() from SubAbstract.");
}
public static void main(String args[]){
p109 instance=new p109();
instance.x();
instance.y(); instance.a();
instance.b();
instance.c(100); System.out.println(instance.f());
instance.g();
}
}