永发信息网

java程序设计错误

答案:3  悬赏:0  手机版
解决时间 2021-07-25 21:25
  • 提问者网友:记得曾经
  • 2021-07-25 07:00

题目的表述如下:
(1)创建接口Eatable
public interface Eatable{
public void howToEat();
}
(2)创建下列两组类,每种可吃对象必须能够实现Eatable接口。
创建Animal 类及其子类Tiger,Chicken,和Elephant,其中Chicken类必须实现Eatable接口。
创建Fruit类及其子类Apple和Orange,因为水果可吃,所以类Fruit要实现Eatable接口。在Fruit类中,给出howToEat方法的通用实现,在Apple类和Orange类中,给出howToEat方法的特殊实现。
(3)在每一个类中重写toString方法,以返回类名。
(4)创建测试程序,包含main方法和showObject方法。在main 方法声明和创建Object类型的四个实例,分别为老虎、小鸡、苹果和桔子。然后调用showObject方法显示对象。下面是showObject方法。
public static void showObject(Object object){
System.out.println(object);
if(object instanceof Eatable){
((Eatable)object).howToEat();
}
}

以下是我编译的,有错误为通过,请高手改正

interface Eatable {
public void howToEat();
}
class Animal {
public String toString(){
return "Animal";
}
}
class Chicken extends Animal implements Eatable{
public String toString(){
return "Chicken";
}
public void howToEat(){
System.out.println("好吃...");
}
}
class Tiger extends Animal {
public String toString(){
return "Tiger";
}
}
class Fruit implements Eatable{
public String toString(){
return "Fruit";
}
public void howToEat(){
}
}
class Apple extends Fruit{
public String toString(){
return "Apple";
}
public void howToEat(){
System.out.println("吃苹果...");
}
}
class Orange extends Fruit{
public String toString(){
return "Orange";
}
public void howToEat(){
System.out.println("吃橘子...");
}
}
public class Eat{
public static void main(String args[]){
Object chicken=new Object();
Object tiger=new Tiger();
Object apple=new Apple();
Object orange=new Orange();
chicken.showObject();
tiger.showObject();
apple.showObject();
orange.showObject();
}
public static void showObject(Object object){
System.out.println(object);
if(object instanceof Eatable){
((Eatable)object).howToEat();
}
else System.out.println("不能吃啊");
}
}

最佳答案
  • 五星知识达人网友:神鬼未生
  • 2021-07-25 08:04

interface Eatable {
public void howToEat();
}
class Animal {
public String toString(){
return "Animal";
}
}
class Chicken extends Animal implements Eatable{
public String toString(){
return "Chicken";
}
public void howToEat(){
System.out.println("姗姗吃小鸡...");
}
}
class Tiger extends Animal {
public String toString(){
return "Tiger";
}
}
class Elephant extends Animal{
public String toString(){
return "Elephant";
}
}
class Fruit implements Eatable{
public String toString(){
return "Fruit";
}
public void howToEat(){
}
}
class Apple extends Fruit{
public String toString(){
return "Apple";
}
public void howToEat(){
System.out.println("福娜吃苹果...");
}
}
class Orange extends Fruit{
public String toString(){
return "Orange";
}
public void howToEat(){
System.out.println("马努吃橘子...");
}
}
public class Test{
public static void showObject(Object object){
System.out.println(object);
if(object instanceof Eatable){
((Eatable)object).howToEat();
}
else System.out.println("不能吃啊");
}
public static void main(String args[]){
Chicken c=new Chicken();


showObject(c);
Tiger t=new Tiger();
showObject(t);
Apple a=new Apple();
showObject(a);
Orange o=new Orange();
showObject(o);


}
}


最后面错了 估计你这块基础没打牢 看看书就好了

全部回答
  • 1楼网友:荒野風
  • 2021-07-25 09:22

你这个是什么问题···你说的 Animal 类及其子类Tiger,Chicken,和Elephant,其中Chicken类必须实现Eatable接口 但是你的

class Animal { public String toString(){ return "Animal"; } } 这个类怎么没实现Eatable 接口?

这个类实现了接口其他子类就不用实现Eatable 而是继承Animal 直接实现Eatable 这个方法了,这是最基础的多继承关系了

  • 2楼网友:大漠
  • 2021-07-25 08:36

Object chicken=new Object(); Object tiger=new Tiger(); Object apple=new Apple(); Object orange=new Orange(); chicken.showObject(); tiger.showObject(); apple.showObject(); orange.showObject();

改为:

showObject(new Chicken());

showObject(new Tiger());

showObject(new Apple());

showObject(new Orange());

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯