关于继承抽象和接口的问题

来源:-

周而复始3

2017-03-19 21:18

1. 创建项目:InterfaceProject;

2. 创建Animal类,该类是抽象类:

·声明一个受保护的整数实例变量legs,记录动物的腿的数目;

·定义一个受保护的构造方法来初始化legs实例变量;

·声明抽象方法eat;

·声明具体方法walk来显示与动物行走方式有关的信息(包括腿的数目);

3. 创建Pet接口:声明三个抽象方法:

  public String getName();

  public void setName(String n);

  public void play();

4. 创建Spider类:

·Spider类扩展了Animal类;

·定义一个无参数构造方法,调用父类构造方法来指明所有蜘蛛都有八条腿;

·实现eat方法;

5. 创建Cat类:

·声明String实例变量来存储宠物的名字;

·定义一个构造方法,使用String参数来指定猫的名字;该构造方法必须调用父类构造方法来指明所有猫都有四条腿;

0

·实现Pet接口方法;

·实现eat方法;

6. 创建Fish类:

·声明String实例变量来存储宠物的名字;

·定义一个无参数的构造方法,该构造方法调用父类构造方法来指明鱼没有腿;

·实现Pet接口方法;

·覆盖walk方法,该方法调用所有的超级方法,并打印输出一条说明鱼不会行走的消息;

·实现eat方法;

7. 创建TestAnimal类:

·该类有程序入口main()函数;

·创建并操作前面所创建的类的实例;

·调用每个对象中的方法;

·对象类型转换;

·使用多态特性;

·使用super关键字调用父类方法。


写回答 关注

3回答

  • 慕移动9181930
    2022-03-27 03:17:58

    谢谢啦~nbsp;

  • 周而复始3
    2017-03-19 21:22:08


    public abstract class Animal {

    protected   int legs;


    protected Animal(int legs) {

    this.legs = legs;

    }


    public abstract void eat();


    public void walk() {

    System.out.println("walk");

    }

    }


    public class Spider extends Animal {

    public Spider(int legs) {

    super(legs);

    }


    public void eat() {

    System.out.println("Spider is eating");

    }

    }


    public class Cat extends Animal implements Pet{

    String name;


    public Cat(String name, int legs) {

    super(legs);

    this.name = name;

    }


    public void eat() {


    }


    public Cat() {

    this("cat", 4);

    }

     public String getName(){

     return name;

     }

     public void setName(String name){

     this.name=name;

     }

     public void play(){

     

     }

    }


    public interface Pet {

     public String getName();

     public void setName(String name);

     public void play();


    }


    public class Fish extends Animal implements Pet{

    String name;

    public Fish(){

    super(legs);

    }

    public void walk(){

    System.out.println("Fish can't walk!");

    }

    public void eat(){

    }

    public String getName(){

     return name;

    }

    public void setName(String name){

     this.name=name;

    }

    public void play(){

     

    }

    }


    public class TestAnimal {

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    Animal a=new Spider(8);

    a.eat();

      Animal b=new Cat("wal",4);

    }

      b.eat();

    }


  • 周而复始3
    2017-03-19 21:21:09

    http://img.mukewang.com/58ce85ae00010bc710320373.jpg

    http://img.mukewang.com/58ce85ae0001e38a10110535.jpg

    http://img.mukewang.com/58ce85af000182b710750585.jpg

    http://img.mukewang.com/58ce85af0001be7511010330.jpg

    http://img.mukewang.com/58ce85b00001f78c10460305.jpg

    http://img.mukewang.com/58ce85b50001a15510380620.jpg

    代码如下 有错误 做到一半也有错的

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530714 学习 · 6091 问题

查看课程

相似问题