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

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

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 回答

谢谢啦~nbsp;

0 回复 有任何疑惑可以回复我~


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();

}


0 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//58ce85ae00010bc710320373.jpg

http://img1.sycdn.imooc.com//58ce85ae0001e38a10110535.jpg

http://img1.sycdn.imooc.com//58ce85af000182b710750585.jpg

http://img1.sycdn.imooc.com//58ce85af0001be7511010330.jpg

http://img1.sycdn.imooc.com//58ce85b00001f78c10460305.jpg

http://img1.sycdn.imooc.com//58ce85b50001a15510380620.jpg

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530553    人
  • 解答问题       6091    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信