猿问

JAVA 用polymorphism一道題目的問題

一问题是这样的:

先建立一个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();

          }

      }

}


郎朗坤
浏览 343回答 4
4回答

慕森卡

public abstract class Animal {&nbsp; &nbsp; public void move() {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println();&nbsp; &nbsp; }}public class Bird extends Animal {&nbsp; &nbsp; public void move() {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println( " 翅膀 " );&nbsp; &nbsp; }}public class Dog extends Animal {&nbsp; &nbsp; public void move() {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println( "四只脚" );&nbsp; &nbsp; }}public class Human extends Animal {&nbsp; &nbsp; public void move() {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println( "两只脚" );&nbsp; &nbsp; }}public class Main {&nbsp; &nbsp; public static void main(String[] args) {&nbsp; &nbsp; &nbsp; &nbsp; Animal[] animals = new Animal[3];&nbsp; &nbsp; &nbsp; &nbsp; animals[0] = new Bird();&nbsp; &nbsp; &nbsp; &nbsp; animals[1] = new Dog();&nbsp; &nbsp; &nbsp; &nbsp; animals[2] = new Human();&nbsp; &nbsp; &nbsp; &nbsp; for (Animal animal : animals)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; animal.move();&nbsp; &nbsp; }}运行截图

临摹微笑

So, 问题是什么?你这代码写的也不对啊for(int i=0;i<animals.length;i++){&nbsp; &nbsp; animals[i].make.Sound();}完全没看到你有什么地方声明了make属性啊!你到底是要实现什么东西?

慕妹3242003

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

慕森王

abstract class Animal{&nbsp; &nbsp; public abstract void move();}class Dog extends Animal{&nbsp; &nbsp; public void move(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("四只脚");&nbsp; &nbsp; }}class Bird extends Animal {&nbsp; &nbsp; public void move(){&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(" 翅膀 ");&nbsp; &nbsp; }}class Human extends Animal {&nbsp; &nbsp; public void move(){&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("两只脚");&nbsp; &nbsp; }}public class Main{&nbsp; &nbsp; public static void main(String[] args){&nbsp; &nbsp; &nbsp; Animal[] animals = new Animal[3];&nbsp; &nbsp; &nbsp; animals[0] = new Bird();&nbsp; &nbsp; &nbsp; animals[1] = new Human();&nbsp; &nbsp; &nbsp; animals[2] = new Dog();&nbsp; &nbsp; &nbsp; for(int i=0;i<animals.length;i++){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; animals[i].move();&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}
随时随地看视频慕课网APP

相关分类

Java
我要回答