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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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();
        }
}

评分

参与人数 1技术分 +1 收起 理由
黑妞~ + 1

查看全部评分

4 个回复

正序浏览
你这个代码不完整吧,我都没找到eat()方法。Cat c = new Cat();
                                                              eat(c);    //这2句简写如下
                                         eat(new Cat());
回复 使用道具 举报
syusikoku 发表于 2014-4-10 23:58
那是类型的转换你没有搞明白:
  父类的引用指向了子类实例对象。就是说我使用一个动物可的接收一个猫的实 ...

谢谢,窝在看一下类型转换这一块
回复 使用道具 举报
那是类型的转换你没有搞明白:
  父类的引用指向了子类实例对象。就是说我使用一个动物可的接收一个猫的实例对象。当然这个它们要有继承关系
  然后我如果使用猫这个实例来来指向上面创建的父类的引用。这个时候动物是父类嘛。要把它给当成猫来使用。就要进行强制类型转换了。
回复 使用道具 举报
我也是新手 。我也不知道我说的对不对  
eat( new Cat());   
就相当于   Cat c=new Cat();   eat( c );     
下面的同理。
Cat c 作为参数的这个应该还有他父类对象作为参数吧!

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马