为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA 用polymorphism一道題目的問題

JAVA 用polymorphism一道題目的問題

郎朗坤 2019-03-20 17:15:59
一问题是这样的:先建立一个Animal的 class 是 abstract Animal有 move() 这个方法接着有 狗、人、鸟三个class 分别的移动是 "四只脚 "&"两只脚" & "翅膀"都继承自Animal继承Animal的类别,必须改写其move方法并显示出每种动物的移动方式说明: Animal不存在的,他不会真的"move",也不能被实例化在建立出各种动物的Subcategory(子类别) 物件时,将这些物件放入同一个阵列中利用回圈方式,印出所有动的讯息我只写的出部分功能 但无法把它完整执行谢谢论坛的朋友们abstract class Animal{          public void move(){              System.out.println();        }} pulbic  class Dog extends Animal{    public void move(){            System.out.println("四只脚");    }}public class Bird extends Animal {    public void move(){        System.out.println(" 翅膀 ");    }}public class Human extends Animal {    public void move(){        System.out.println("两只脚");    }}public class Main{    public static void main(String[] args){      Animal[] animals = new Animal[3];      animals[0] = new Bird();      animals[1] = new Human();      animals[2] = new dog();            for(int i=0;i<animals.length;i++){          animals[i].make.Sound();          }      }}
查看完整描述

4 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

public abstract class Animal {

    public void move() {

        System.out.println();

    }

}


public class Bird extends Animal {

    public void move() {

        System.out.println( " 翅膀 " );

    }

}

public class Dog extends Animal {

    public void move() {

        System.out.println( "四只脚" );

    }

}


public class Human extends Animal {

    public void move() {

        System.out.println( "两只脚" );

    }

}


public class Main {


    public static void main(String[] args) {

        Animal[] animals = new Animal[3];


        animals[0] = new Bird();


        animals[1] = new Dog();


        animals[2] = new Human();


        for (Animal animal : animals)

            animal.move();

    }

}

运行截图

https://img1.sycdn.imooc.com//5cb9367f0001e1cf08000543.jpg

查看完整回答
反对 回复 2019-04-19
?
临摹微笑

TA贡献1982条经验 获得超2个赞

So, 问题是什么?你这代码写的也不对啊


for(int i=0;i<animals.length;i++){

    animals[i].make.Sound();

}

完全没看到你有什么地方声明了make属性啊!你到底是要实现什么东西?


查看完整回答
反对 回复 2019-04-19
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

把animal 的move 方法改成abstract 吧,我看你这问题说的是子类必须重写。


查看完整回答
反对 回复 2019-04-19
?
慕森王

TA贡献1777条经验 获得超3个赞

abstract class Animal{

    public abstract void move();

}

class Dog extends Animal{

    public void move(){

            System.out.println("四只脚");

    }

}

class Bird extends Animal {

    public void move(){

        System.out.println(" 翅膀 ");

    }

}

class Human extends Animal {

    public void move(){

        System.out.println("两只脚");

    }

}

public class Main{

    public static void main(String[] args){

      Animal[] animals = new Animal[3];

      animals[0] = new Bird();

      animals[1] = new Human();

      animals[2] = new Dog();

      for(int i=0;i<animals.length;i++){

          animals[i].move();

      }

    }

}


查看完整回答
反对 回复 2019-04-19
  • 4 回答
  • 0 关注
  • 341 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号