黑马程序员技术交流社区
标题:
关于多态的问题,引用数据类型什么时候作为参数使用
[打印本页]
作者:
Dijkstra
时间:
2014-4-10 22:05
标题:
关于多态的问题,引用数据类型什么时候作为参数使用
本帖最后由 Dijkstra 于 2014-4-10 22:14 编辑
class DuoTaiDemo
{
public static void main(String[] args)
{
//建立猫的对象,调用吃功能
eat( new Cat());
//建立狗对象,调用吃的功能
eat(new Dog());
//这样创建对象的方式,不明白呀
//建立鸟对象,调用吃的功能
eat(new Bird());
//建立猪对象,调用吃的功能
eat(new Pig());
}
//定义猫吃的方法,没有返回值类型,未知数就是猫
public static void eat(Cat c){
//这里把Cat c作为引用类型传入,这样使用引用类型的情况还有哪些,
c.eat();
}
//定义狗吃的方法,没有返回值类型,未知数就是狗
public static void eat(Dog d){
d.eat();
}
//定义鸟吃的方法,没有返回值类型,未知数就是鸟
public static void eat(Bird b){
b.eat();
}
//定义猪吃的方法,没有返回值类型,未知数就是猪
public static void eat(Pig p){
p.eat();
}
}
作者:
程序爱好者
时间:
2014-4-10 23:35
我也是新手 。我也不知道我说的对不对
eat( new Cat());
就相当于 Cat c=new Cat(); eat( c );
下面的同理。
Cat c 作为参数的这个应该还有他父类对象作为参数吧!
作者:
syusikoku
时间:
2014-4-10 23:58
那是类型的转换你没有搞明白:
父类的引用指向了子类实例对象。就是说我使用一个动物可的接收一个猫的实例对象。当然这个它们要有继承关系
然后我如果使用猫这个实例来来指向上面创建的父类的引用。这个时候动物是父类嘛。要把它给当成猫来使用。就要进行强制类型转换了。
作者:
Dijkstra
时间:
2014-4-11 00:22
syusikoku 发表于 2014-4-10 23:58
那是类型的转换你没有搞明白:
父类的引用指向了子类实例对象。就是说我使用一个动物可的接收一个猫的实 ...
谢谢,窝在看一下类型转换这一块
作者:
请备注
时间:
2014-4-11 10:21
你这个代码不完整吧,我都没找到eat()方法。Cat c = new Cat();
eat(c); //这2句简写如下
eat(new Cat());
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2