黑马程序员技术交流社区
标题:
关于接口的问题
[打印本页]
作者:
李振乐
时间:
2014-11-9 20:36
标题:
关于接口的问题
到底什么时候才去定义接口和实现接口?既然实现接口的时候还需要都覆盖接口里的方法,觉得也挺麻烦的,为什么说接口的出现是降低了耦合性,实现功能扩展?我怎么感觉接口只是为了解决JAVA不能多继承而出现的呢??
作者:
zhangyangLengen
时间:
2014-11-10 12:25
接口屏蔽了具体功能的实现,就像笔记本的usb接口,以前电脑是
将鼠标焊接在电脑里的,现在只提供usb接口,如果要实现某个功能,
只要将插口插进usb接口。
作者:
zhangyangLengen
时间:
2014-11-10 12:26
而具体功能的实现则在,具体的实现接口的类中的方法中
作者:
zhangyangLengen
时间:
2014-11-10 12:30
/*
笔记本电脑使用。
为了扩展笔记本的功能,但日后出现什么功能设备不知道。
定义一个规则,只要日后出现的设备都符合这个规则就可以了。
规则在java中就是接口。
*/
interface USB// 暴露的规则。[定义规则]
{
public void open();
public void close();
}
class BookPC
{
public static void main(String[] args)
{
useUSB(new UPan());//功能扩展了。[进行功能拓展]
useUSB(new UsbMouse());//这样就能够实现一口多用了
}
//使用规则。[使用规则]
public static void useUSB(USB u)//接口类型的引用,用于接收(指向)接口的子类对象。 //USB u= new UPan(); //这样就能够实现一口多用了
{
if(u!=null)
{
u.open();
u.close();
}
}
}
//一年后。------------------------------
//实现规则。
//这些设备和电脑的耦合性降低了。
class UPan implements USB[规则的实现]
{
public void open()
{
System.out.println("upan open");
}
public void close()
{
System.out.println("upan close");
}
}
class UsbMouse implements USB[规则的实现]
{
public void open()
{
System.out.println("UsbMouse open");
}
public void close()
{
System.out.println("UsbMouse close");
}
}
/*
class Mouse
{
}
class BookPC
{
public static void main(String[] args)
{
useMouse(new Mouse());
}
public static void useMOuse(Mouse m) //这样只能传入鼠标,而不能传入键盘,U盘
{
m.open();
}
}
*/
作者:
王会涛
时间:
2014-11-10 13:34
耦合就是类与类之间的依懒性,耦合性降低了,就是依懒性降低了,接口提供了标准,规则,只要你实现接口里的方法,就可以实现对象的功能扩展,多好!接口确实是为了解决java不能多重继承的!这还不行,已经很好了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2