日期:2014-05-20  浏览次数:20719 次

关于Java接口
用接口和用类的继承能实现同一目的,为什么还要用(引进)接口??

接口代码:

//接口
public interface PCI {
public void start();
public void stop();
}

//声卡对接口的实现
public class SoundCard implements PCI{
public void start(){
System.out.println("声卡:开始");
}

public void stop(){
System.out.println("声卡:停止");
}
}

//网卡对接口的实现
public class NetWorkCard implements PCI{
public void start(){
System.out.println("网卡:数据传送");
}

public void stop(){
System.out.println("网卡:传送完毕");
}
}

//测试类
public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SoundCard sc=new SoundCard(); //sc为接口对象
NetWorkCard nwc=new NetWorkCard(); //nwc为接口对象

sc.start();
sc.stop();
nwc.start();
nwc.stop();

}

}


--------------------

用类的继承:

//父类
public abstract class PCI {
abstract void start();
abstract void stop();
}

//声卡子类对父类的实现
public class SoundCard extends PCI{
public void start(){
System.out.println("声卡:开始了");
}

public void stop(){
System.out.println("声卡:停止了");
}
}

//网卡子类对父类的实现
public class NetWorkCard extends PCI{
public void start(){
System.out.println("网卡:数据传送了");
}

public void stop(){
System.out.println("网卡:传送完毕了");
}
}

//测试类
public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SoundCard sc=new SoundCard(); //sc为接口对象
NetWorkCard nwc=new NetWorkCard(); //nwc为接口对象

sc.start();
sc.stop();
nwc.start();
nwc.stop();
}

}


-------------------------------------


都能实现同一目的,为什么还···
看过书,但不是很理解~!

------解决方案--------------------
可以同时实现多个接口 类似于c++的多继承
------解决方案--------------------
类继承是实现继承,接口继承是功能继承。LZ看过java APL没有,看了就知道了,接口作用是不小的
------解决方案--------------------
一个类只能继承一个类却可以实现多个接口
------解决方案--------------------
一个类可以实现多个接口。但只能继承一个类
------解决方案--------------------
一个类可以实现多个接口。但只能继承一个



对滴
------解决方案--------------------
一个类可继承多个接口,但是只能继承一个类
------解决方案--------------------
为了实现c++的多重继承
------解决方案--------------------
java是单继承的,一旦继承了一个就不能继承第二个了,如果还有继承的必要怎么办呢?接口就是解决方法,类似于c++的多继承