A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2011-8-11 00:15  /  1756 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

黑马网友  发表于 2011-8-11 08:55:23
楼主
抽象类和抽象方法可以使类的抽象性明确起来,并告诉编译器打算怎么来使用他们。抽象类还是很有用的重构工具,因为他们可以使我们可以很容易地将公共方法沿着继承层次结构向上移动。
回复 使用道具 举报
黑马网友  发表于 2011-8-11 16:10:58
沙发

回复 楼主 的帖子

你都没有理解接口的含义。类是对象的抽象,接口抽得更厉害,是类的抽象。不打机锋,直接看尘世的七情六欲。

比如,你要一个充气娃娃,这个充气娃娃有一个makeLove方法,你买这个娃娃就是冲着makeLove去的,你不关心它是哪国的娃娃,长得怎样。那么代码就体现为:

interface Chongqiwawa{
public void makeLove(String name);
}

class Person{
Chongqiwawa wawa;
public void setWawa(Chongqiwawa wawa){
   this.wawa = wawa;
}
private String name;
public void makeLove(){
  //调用wawa的makeLove方法
  wawa.makeLove(name);
}
现在,你想和wawa那个,就可以这样用了:
main(){
  Person you = new Person();
  you.makeLove();
}

报错了吧?你怎么能跟虚的wawa那个呢?所以必须要买一个wawa.好吧,去逛成人店选购一个wawa.这里有日本娃娃,美国娃娃,先看看美国娃娃功能怎么样。

class USAWawa implements Chongqiwawa{
   public void makeLove(String name){
     System.output.println(name + " come on! a,a, a...");
  }
}
好吧,你已经流口水了,一口价成交,然后带回家,迫不及待实践一下,代码体现为:
main(){
  Person you = new Person();
  Chongqiwawa wawa = new USAWawa();
  you.setWawa(wawa);
  you.makeLove();
}

这时候你已经可以和娃娃水乳交融了。不久,你发觉厌倦了美国娃娃,想试下日本娃娃,再次来到成人超市,日本娃娃makeLove功能实现如下:
class JapanWawa implements Chongqiwawa{
   public void makeLove(String name){
     System.output.println(name + " yemede! a,a, a...ganbade...");
  }
}
OK,你直接丢下一堆钞票一句不用找就抱回家了,马上进入主题:

main(){
  Person you = new Person();
  //获得实际的wawa
  Chongqiwawa wawa = new JapanWawa();
  you.setWawa(wawa);
  you.makeLove();
}
看见了吗,只需改动一行代码,你就实现了娃娃的切换,得到不同的makeLove感受,其他代码都不用改。
以上是一个高手对接口的理解。看完我也是叹为观止。希望对你有所帮助。
回复 使用道具 举报
黑马网友  发表于 2011-8-11 16:25:19
藤椅
牛逼。当你懂得多态,你就懂了
回复 使用道具 举报
黑马网友  发表于 2011-8-12 17:03:21
板凳
可是老罗不给分啊!气人。。。。!是吧老罗:lol

评分

参与人数 1技术分 +2 收起 理由
admin + 2 加分,加分!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-15 11:17:35
报纸

回复 藤椅 的帖子

牛叉,,,这比喻太恰当了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马