首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java error =不是抽象的,也不覆盖抽象方法。

Java error =不是抽象的,也不覆盖抽象方法。
EN

Stack Overflow用户
提问于 2014-03-15 23:13:15
回答 2查看 1.6K关注 0票数 0

im有错误Ikan不是抽象的,也不覆盖抽象方法,setName类Ikan扩展动物实现宠物,Kucing不是抽象的,也不覆盖抽象方法,setName类Kucing扩展动物实现宠物

代码语言:javascript
复制
abstract class Animal {
    protected int Legs;
    protected String Eater;
    Animal (int l,String e) {
        Legs = l;
        Eater = e;
    }
    abstract public void walk ();
    abstract public void eat ();
    int getLegs () {
        return Legs;
    }
    String getEater () {
        return Eater;
    }
}

interface Pet {
    void setName();
    String getName();
    void balikNama();
    void play();
}

class Ikan extends Animal implements Pet {
    String name,mainan;
    Ikan (int l,String e) {
        super(l,e);
    }
    void setMainan (String m) {
        mainan = m;
    }
    void getMainan () {
        System.out.println ("Ikan ini bermain"+mainan);
    }
    public void setName (String n) {
        name = n;
    }
    public String getName () {
        return name;
    }
    public void balikNama () {
        for (String part : name.split(" ")) {
            System.out.print(new StringBuilder(part).reverse().toString());
            System.out.print(" ");
        }
    }
    public void play () {
        System.out.println (name+" lagi mainan "+mainan);
    }
    public void walk () {
        System.out.println ("Tidak bisa berjalan bisanya renang");
    }
    public void eat () {
        System.out.println ("Hewan ini memakan "+Eater);
    }
}

class Kucing extends Animal implements Pet {
    String name,mainan;
    Kucing (int l,String e) {
        super(l,e);
    }
    void setMainan (String m) {
        mainan = m;
    }
    void getMainan () {
        System.out.println ("Kucing ini bermain"+mainan);
    }
    public void setName (String n) {
        name = n;
    }
    public String getName () {
        return name;
    }
    public void balikNama () {
        for (String part : name.split(" ")) {
            System.out.print(new StringBuilder(part).reverse().toString());
            System.out.print(" ");
        }
    }
    public void play () {
        System.out.println (name+" lagi mainan "+mainan);
    }
    public void walk () {
        System.out.println ("Berjalan dengan "+Legs+" kaki");
    }
    public void eat () {
        System.out.println ("Hewan ini memakan "+Eater);
    }
}

class Laba extends Animal {
    String name;
    Laba (int l,String e) {
        super(l,e);
    }
    void setName (String n) {
        name = n;
    }
    public String getName () {
        return name;
    }
    public void balikNama () {
        for (String part : name.split(" ")) {
            System.out.println(new StringBuilder(part).reverse().toString());
        }
    }
    public void walk () {
        System.out.println ("Berjalan dengan "+Legs+" kaki");
    }
    public void racun () {
        System.out.println ("Cuma sedikit racunya");
    }
    public void eat () {
        System.out.println ("Hewan ini memakan "+Eater);
    }
}

class Tarantula extends Laba{
    String name;
    Tarantula (int l,String e,String n) {
        super(l,e);
        name = n;
    }
    void setName (String n) {
        name = n;
    }
    public String getName () {
        return name;
    }
    public void balikNama () {
        for (String part : name.split(" ")) {
            System.out.println(new StringBuilder(part).reverse().toString());
        }
    }
    public void walk () {
        System.out.println ("Berjalan dengan "+Legs+" kaki");
    }
    public void racun () {
        System.out.println ("Banyak racunya");
    }

}

class TestAnimal {
    public static void main (String[]args) {
        Ikan I = new Ikan (0,"Manusia");
        Kucing K = new Kucing (4,"Ikan");
        Laba L = new Laba (6,"Kucing");
        Tarantula T = new Tarantula (6,"Burung","Joni");
        I.setName ("Piranha");
        K.setName ("Tiger");
        L.setName ("Spiderman");
        I.setMainan ("Ikan lainnya");
        K.setMainan ("Burung");
        Animal [] A = new Animal [4];
        A[0] = I;
        A[1] = K;
        A[2] = L;
        A[3] = T;
        for (int i = 0;i < 4;i++) {
            if (A[i] instanceof Laba) {
                System.out.println ("Ini bukan hewan peliharaan bro");
                System.out.print ("Laba laba ini bernama "+A[i].getName());
                A[i].balikNama();
                A[i].walk();
                A[i].racun();
                A[i].eat();
            } else {
                A[i].getName();
                A[i].balikNama();
                A[i].walk();
                A[i].eat();
                A[i].getMainan();
            }
        }
    }
}
EN

回答 2

Stack Overflow用户

发布于 2014-03-15 23:17:41

Pet接口声明setName不应该接受任何参数。这是不正确的;该方法的目的是采用一个表示新名称的String

把它改成

代码语言:javascript
复制
void setName(String name);

Java将会看到它已经实现了。

票数 2
EN

Stack Overflow用户

发布于 2014-03-15 23:17:34

Ikan和Kucing类不实现继承的抽象方法Pet.setName()

将接口更改为Pet.setName(String name)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22430949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档