亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 354 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號