class Dog {
public void smell(Cat _cat){
catch(); }
public void smell(Food _food){ spit();
Run(); }
}
public void smell(Cat _cat){
catch(); }
public void smell(Food _food){ spit();
Run(); }
}
解决方案 »
- 帮忙看下这个字符串的截取
- 我用new File();打开一个文件时,其他的程序无法写这个文件,怎么样才能使我打开一个文件,而不影响其他程序对其的访问
- 抢分,算法问题
- 如何监听一个文本框的值的变化~~
- 一个声明实例的问题
- 调查:毕业一年的Java程序员,你们这一年都做过几个项目,学到了什么,打算学习什么,向什么方向发展?
- 怎样在JTree Node上加JCheckBox或者JTable
- Java应用程序运行问题?
- 打击,大急,帮忙,谢谢 -- 关于如何设置JLabel,JTextField的多行显示
- java 怎么实现c语言里的双井号功能,就是连接字符##
- java中如何改变实参内容?
- 有没有人能够详细的讲解一下Vector的具体用法,虽然书上都但是看得不是很明白!
private String dog_name;
……
public Dog(){}
public void smell(Odor _odor){
doSomething();
}
}
class Adog extends Dog{
public void smell(Cat _cat){
catch();
}
}
class Bdog extends Dog{
public void smell(Food _food){
spit();
Run();
}
}
this.dog_name=dog_name;
……
}
不过dog类最好还是interface的
获都可以嗅到猫的气味,但小狗A比较好动,一嗅到猫的气味就要去抓小猫,而小狗B比较懒惰,它嗅到小猫的气味却继续睡大觉。
实现如下:
interface Dog{
void smell(Cat cat);
}class ADog implements Dog{
void smell(Cat cat){
catch(cat);
}
}class BDog implements Dog{
void smell(Cat cat){
sleep();
}
}
这是我的书上看到的一个例子,是在讲多态时举的例子,原文是这样说的:
再拿狗作比喻,一条狗的嗅觉是多态的。如果狗闻到帽的气味,它会吠叫并且追着猫跑。如果狗闻到食物的气味,它将分泌唾液并向盛着食物的碗跑去。两种状态下是同一种嗅觉器官在工作,差别在于闻到了什么气味,也就是有两种不同类型的数据作用于狗的鼻子!在一个Java程序中使用方法时,也可以采用这个通用的概念。
多态的概念经常被说成是“一个接口,多种方法”。这意味着可以为一组相关的动作设计一个通用的接口。多态性允许用一个接口被必于同一类的多个动作使用。书上没具体将怎么实现这个多态,所以我象各位提问。