我总觉得接口是抽象方法 这话对了。 接口就是抽象方法的进一步抽象。有什么用的话一两句话体会不出来。 最常见的例子,你用集合类比如List,就是一个接口,常用的实现类有ArrayList,和Vector 一般推荐的用法是 List list = new ArrayList(); 这样你想改成Vector时只要改成 List list = new Vector(); 就好了。还有JDBC数据库连接,SUN只给出了通用接口,具体的实现由各数据库厂商提供,你调用的只是通用的方法,这样就隐藏了各个不同数据库具体实现的区别。
接口是特殊的抽象类: 1. 接口中的字段(数据成员)默认被final修饰,而且必须初始化。 2. 接口中的方法(函数成员)默认被abstract修饰。即必须是抽象方法。 interface A{ //定义接口 A final int a=5; //定义a 初始化a=5 abstract void show1(); //定义show1()抽象方法 }interface B{ //定义接口 B int b=6; //省略final修饰 初始化b=6 void show2(); //省略abstract 定义show2()抽象方法 } class Y implements A,B{ //Y类 同时 实现接口 A 和 B (接口支持多重继承) public void show1(){ //实现接口A中的show1()方法 System.out.println("a="+a); } public void show2(){ //实现接口B中的show2()方法 System.out.println("b="+b); } }public class Pro { public static void main(String[] args) { Y print=new Y(); print.show1(); //调用show1()方法 print.show2(); //调用show2()方法 }}Print a=5 b=6
这两天看了书,有些明白了.楼主所说的如果A implements Y 并且 B implements Y, A还是不能调用B的方法, 这两个类还是没有任何关系的. 接口本身是没有对象,不能被实现的.它包括final数据成员和abstract的方法成员, 只是规定了一些数据和方法的名字,或者说形式而已,至于具体的实现要在实现接口的类中进行, 楼主举的例子里, A 和 B之间的唯一关系就是它们都有一些相同的final数据量, 和名字一样的成员方法(不过内容就不一样了,各自进行了不同的重载)
waterscript() : /* 接口是特殊的抽象类: 1. 接口中的字段(数据成员)默认被final修饰,而且必须初始化。 2. 接口中的方法(函数成员)默认被abstract修饰。即必须是抽象方法。 interface A{ //定义接口 A final int a=5; //定义a 初始化a=5 abstract void show1(); //定义show1()抽象方法 }interface B{ //定义接口 B int b=6; //省略final修饰 初始化b=6 void show2(); //省略abstract 定义show2()抽象方法 } class Y implements A,B{ //Y类 同时 实现接口 A 和 B (接口支持多重继承) public void show1(){ //实现接口A中的show1()方法 System.out.println("a="+a); } public void show2(){ //实现接口B中的show2()方法 System.out.println("b="+b); } }public class Pro {public static void main(String[] args) { Y print=new Y(); print.show1(); //调用show1()方法 print.show2(); //调用show2()方法}}Print a=5 b=6*/为什么还要接口,直接用实现类不行吗? class Y (){ int a=5; int b=6; public void show1(){ System.out.println("a="+a); } public void show2(){ System.out.println("b="+b); } } public class Pro {public static void main(String[] args) { Y print=new Y(); print.show1(); //调用show1()方法 print.show2(); //调用show2()方法}接口给我们的好处 是什么? 你的调用好象与接口没有关系? 能否解释一下接口的好处。
java 交流群:36468871 高手请进!
定义一个借口 可以用 implements 实现这个接口 接口体现了java里的多态性 比如说接口里有一个抽象方法 aa(),你可以在不同的类里多次实现它,这是很灵活的,具体一点,比如计算图形面积。定义接口 interface area ,里面有个抽象方法areas ,让三角形类 class sanjiao 实现接口 area, 你就可以在类 sanjiao里实现 方法 areas ,计算出三角形的面积, 同样class zhengfang 正方形 也可以实现接口area ,在类里 实现方法 areas ,计算出正方形的面积. 不知道我这么说 搂住是否明白.
不能,除非B b=new B();b.bMethod()这样调用。
这话对了。
接口就是抽象方法的进一步抽象。有什么用的话一两句话体会不出来。
最常见的例子,你用集合类比如List,就是一个接口,常用的实现类有ArrayList,和Vector
一般推荐的用法是
List list = new ArrayList();
这样你想改成Vector时只要改成
List list = new Vector();
就好了。还有JDBC数据库连接,SUN只给出了通用接口,具体的实现由各数据库厂商提供,你调用的只是通用的方法,这样就隐藏了各个不同数据库具体实现的区别。
区别在于Vector是线性安全的,ArrayList不是,所以ArrayList性能好一些。Vecotr安全一些。
要不用搜索引擎search一下。.
1. 接口中的字段(数据成员)默认被final修饰,而且必须初始化。
2. 接口中的方法(函数成员)默认被abstract修饰。即必须是抽象方法。
interface A{ //定义接口 A
final int a=5; //定义a 初始化a=5
abstract void show1(); //定义show1()抽象方法
}interface B{ //定义接口 B
int b=6; //省略final修饰 初始化b=6
void show2(); //省略abstract 定义show2()抽象方法
}
class Y implements A,B{ //Y类 同时 实现接口 A 和 B (接口支持多重继承)
public void show1(){ //实现接口A中的show1()方法
System.out.println("a="+a);
}
public void show2(){ //实现接口B中的show2()方法
System.out.println("b="+b);
}
}public class Pro { public static void main(String[] args) {
Y print=new Y();
print.show1(); //调用show1()方法
print.show2(); //调用show2()方法 }}Print
a=5
b=6
/*
接口是特殊的抽象类:
1. 接口中的字段(数据成员)默认被final修饰,而且必须初始化。
2. 接口中的方法(函数成员)默认被abstract修饰。即必须是抽象方法。
interface A{ //定义接口 A
final int a=5; //定义a 初始化a=5
abstract void show1(); //定义show1()抽象方法
}interface B{ //定义接口 B
int b=6; //省略final修饰 初始化b=6
void show2(); //省略abstract 定义show2()抽象方法
}
class Y implements A,B{ //Y类 同时 实现接口 A 和 B (接口支持多重继承)
public void show1(){ //实现接口A中的show1()方法
System.out.println("a="+a);
}
public void show2(){ //实现接口B中的show2()方法
System.out.println("b="+b);
}
}public class Pro {public static void main(String[] args) {
Y print=new Y();
print.show1(); //调用show1()方法
print.show2(); //调用show2()方法}}Print
a=5
b=6*/为什么还要接口,直接用实现类不行吗?
class Y (){
int a=5;
int b=6;
public void show1(){
System.out.println("a="+a);
}
public void show2(){
System.out.println("b="+b);
}
}
public class Pro {public static void main(String[] args) {
Y print=new Y();
print.show1(); //调用show1()方法
print.show2(); //调用show2()方法}接口给我们的好处 是什么?
你的调用好象与接口没有关系?
能否解释一下接口的好处。