菜鸟请教:为什么要使用接口,接口的优点在哪里?!!

架构之路 2005-10-22 01:52:44
继承了接口,一样要实现接口中的方法。我不继承接口,不也可以自己写方法吗,为什么一定要用这个壳?欢迎讨论~
...全文
925 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyzph 2006-06-03
  • 打赏
  • 举报
回复
接口(interface)的类,在这个类中,所有的成员函数都是抽象的,也就是说它们都只有说明没有定义,你可以如下所示来说明一个接口。
public interface interfaceName
//成员函数说明

   接口中成员函数的缺省引用类型是private,接口(interface)的内部变量是不可更改的,并且总是static和final。
   通过使用关键字implement,你可以在定义类时继承一个接口。不过与extends不同的是,一个类可以同时继承多个接口。
   使用接口的优点在何处呢?通过创建一个接口,你可以说明一整套抽象的成员函数而无须去具体实现它,所有继承了这个接口的类,都将有着具有相同原形的成员函数。例如,你想所有的shapes都有一个draw()成员函数,你可以创建一个接口并且用Shape命名:

public interface Shape
void draw();

   现在,无论你何时创建一个继承自Shape的类,都将拥有一个成员函数draw()。
dh0498 2006-06-03
  • 打赏
  • 举报
回复
多重继承
架构之路 2005-10-23
  • 打赏
  • 举报
回复
lip009(深蓝忧郁) ( 你的说法让我豁然开朗,同时谢谢各位的解惑
mnbvc874 2005-10-23
  • 打赏
  • 举报
回复
thinking in java ~~~~
ustcfrank 2005-10-22
  • 打赏
  • 举报
回复
隐藏实现
ainice 2005-10-22
  • 打赏
  • 举报
回复
类只能实现接口
接口可以继承接口

主要是为了实现多态机制
假如以下代码:

interface Animal{
void walk();
}
class Cat implements Animal{
public void walk(){
System.out.println("this is Cat");
}
}
class Bird implements Animal{
public void walk(){
System.out.println("this is Bird");
}
}

public class Test{
public void testWalk(Animal animal){
animal.walk();
}
public static void main(String args[]){
Animal animal=new Cat();
Test test=new Test();
test.testWalk(animal);
Animal animal=new Bird();
test.testWalk(animal);
}
}
这样对Test同一个方法testWalk()调用则产生了两种截然不同的行为
这样代码的复用性将更好。就这个例子来说
假如你要将那两个类的对象要作为参数传入这个方法如果不用接口你就的有两个方法
而现在只要一个就行了
schol 2005-10-22
  • 打赏
  • 举报
回复
接口可不是为了实现C++的多重继承
lip009 2005-10-22
  • 打赏
  • 举报
回复
楼主,接口能继承?接口是用来实现的吧,是用来增强现有类的功能的!有些接口是提前定义好的,而里边的方法你必须实现,而且你只有实现了接口自带的方法才能保证在特定环境下系统自己去执行这些方法,就象java里的事件监听器接口,比如说按钮的事件监听器ActionListener,只有实现了里边的按钮单击方法才能在单击按钮的时候系统自动调用该方法,而你自己写的方法系统根本不知道有该方法,自然就实现不了按钮单击的功能了!
3feetcat 2005-10-22
  • 打赏
  • 举报
回复
可以多重继承
thumb3344 2005-10-22
  • 打赏
  • 举报
回复
http://blog.csdn.net//softwarezhang/archive/2005/04/25/362832.aspx

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧