关于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++的多继承