interface

yarhsely 2012-05-24 08:48:35
谁能指点一下接口,谢了
...全文
118 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
接口即规范,实现这个规范就可以了 。
ufofind 2012-06-03
  • 打赏
  • 举报
回复
接口只是做一些定义的动作,声明一些成员变量,方法。然后在实现类中去实现它。使用接口可以实现多态操作!
张自强 2012-06-01
  • 打赏
  • 举报
回复

有意思,哈哈哈

我也说下,接口表示一种抽象类型,对一类事物进行抽象,统一描述一类事物的行为规范,就是接口。

[Quote=引用 11 楼 的回复:]

Java code

package com.netpowerapps.designpatterm;

/**
* 客户端测试类
* @author md313
*
*/
public class TestClient {

public static void main(String[] args) {
//人啊,总是被各种问题所困扰,这不,今天楼主被……
[/Quote]
qq843788041 2012-06-01
  • 打赏
  • 举报
回复

package com.netpowerapps.designpatterm;

/**
* 客户端测试类
* @author md313
*
*/
public class TestClient {

public static void main(String[] args) {
//人啊,总是被各种问题所困扰,这不,今天楼主被interface的问题所困扰,作为一个对interface有疑问的提问者,到CSDN上求指点来了
Askable louzhu = new InterfaceAsker();
//楼主就“interface的作用”进行提问
Question q = louzhu.ask("interface的作用是什么?");
//CSDN上热心的我们出现了,不过林子大了,什么样的niao都有,不管是什么niao,只要能解答问题的niao都行。来了个偏懒的解答者
Answerable we = new LazyAnswerPerson();
//懒niao是一个可以解答问题的人,当然可以回答louzhu提出的问题咯
we.answer(q);
//我们中又来了一个解答者,这位解答者是个比较勤快点儿的niao,虽然解答得不是很好,但还是通过自己一番勤奋后针对louzhu的问题给出了自己的解答
we = new DiligentAnswerPerson();
//勤快niao也是一个可以解答问题的人,解答就是了
we.answer(q);
/*
* 又来一个解答者 we = new XXXAnswerPersion();
* 解答者解答louzhu的问题
* we.answer(q);
*
* ....经过多个解答者的解答后,louzhu的问题解决了,知道了interface有xxxx这么个作用
*
*/

/*
* 过了几天,楼主对inner class又有疑问了,于是,
* louzhu = new InnerClassAsker();
* q = louzhu.ask("什么是inner class?");
*
* 于是乎,又有一群热心的we前来解答问题
* we = new XXXAnswerPerson();
* we.answer(q);
*/
}

}

/**
* 提问者借口,负责提出问题
* @author md313
*
*/
public interface Askable {

/**
* 提出问题
* @param strQuestion 问题的描述
* @return 针对问题的描述构建一个问题对象
*/
public Question ask(String strQuestion);

}

/**
* 对interface有问题要问的人
* @author md313
*
*/
public class InterfaceAsker implements Askable {

@Override
public Question ask(String strQuestion) {
System.out.println(strQuestion + " 问题还是没搞明白,去CSDN上提问吧!");
return new Question(strQuestion);
}

}

/**
* 回答者接口,负责回答问题
* @author md313
*
*/
public interface Answerable {

/**
* 回答一个问题
* @param q 待回答的问题
*/
public void answer(Question q);

}

/**
* 偏懒的解答者
* @author md313
*
*/
public class LazyAnswerPerson implements Answerable {

@Override
public void answer(Question q) {
System.out.println("对于:\"" + q.getStrQuestion() + "\"这个问题,请参考这个链接:http://www.xxxx.com/yyyy?id=n");
}

}

/**
* 勤奋点儿的解答者
* @author md313
*
*/
public class DiligentAnswerPerson implements Answerable{

@Override
public void answer(Question q) {
System.out.println("针对:\"" + q.getStrQuestion() + "\"这个问题,我的看法是这样的XXXXXX,为了让你更明白,特地花了点时间写了如下代码111110000111...");
}

}

/**
* 表示问题的类
* @author md313
*
*/
public class Question {

private String strQuestion;

public Question(String strQuestion) {
super();
this.strQuestion = strQuestion;
}

public String getStrQuestion() {
return strQuestion;
}

public void setStrQuestion(String strQuestion) {
this.strQuestion = strQuestion;
}

}


总共有5个类+2个接口,看起来可能有点儿费劲,但是接口就是用在负责的系统上才能体现出其价值,不知道对楼主是否有帮助。建议楼主在学习的过程中多实践和参考优秀的代码
yarhsely 2012-06-01
  • 打赏
  • 举报
回复
请高手写一个程序,我想了很久还是没有弄明白接口的真正价值在哪里?
古布 2012-05-30
  • 打赏
  • 举报
回复
接口表现为like a 的关系,抽象类表现为is a 的关系,也就是继承。
一个类可以实现多个接口,却不能继承多个类。

更多的区别,请参照下面这个文章,比较经典,从语法,语义,设计。。来区分
http://tech.163.com/06/0629/09/2KPA7DSP0009159T.html
diwushi33 2012-05-30
  • 打赏
  • 举报
回复
接口内的方法必须全部实现,在就扣中声明一个方法可能使所有子类报错,这和抽象类是不同的
yarhsely 2012-05-30
  • 打赏
  • 举报
回复
接口内的方法在类中都要重新实现,为什么还要定义接口,也就是说接口起到什么作用,我没感觉到继承的原理啊?
yarhsely 2012-05-30
  • 打赏
  • 举报
回复
接口内的方法在类中都要重新实现,为什么还要定义接口,也就是说接口起到什么作用,我没感觉到继承的原理啊?
yarhsely 2012-05-30
  • 打赏
  • 举报
回复
接口内的方法在类中都要重新实现,为什么还要定义接口,也就是说接口起到什么作用,我没感觉到继承的原理啊?
guiyang50302 2012-05-28
  • 打赏
  • 举报
回复
用多了就知道了的,
yarhsely 2012-05-24
  • 打赏
  • 举报
回复
非常感谢
古布 2012-05-24
  • 打赏
  • 举报
回复
http://developer.51cto.com/art/200906/130540.htm
古布 2012-05-24
  • 打赏
  • 举报
回复
http://blog.csdn.net/rocketboy911/article/details/1633414

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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