Java 实验类作业 继承抽象类接口

动物(Animal)包括:老虎 (Tiger) 和绵羊 (Sheep)等;这些动物吃的行为(eat)各不相同(绵羊吃草、老虎吃肉),但睡觉的行为(sleep)是一致的。请通过继承实现以上需求,并编写主类AnimalTest分别测试吃和睡觉的行为。

推荐步骤:

(1)编写一个父类Animal,定义eat()和sleep()方法。

(2)编写两个类Tiger和Sheep,分别继承自Animal类,至少要覆盖父类Animal中的eat()方法。

(3)编写主类AnimalTest,分别生成类Tiger和Sheep的对象,并测试其中的eat()和sleep()方法。

第一种方法——继承

//Animal.java

package animal;


public class Animal {

public String eat;//行为(eat)各不相同(绵羊吃草、老虎吃肉)

public String sleep="趴着睡";//睡觉的行为(sleep)是一致

public String eat()

{

return eat;

};

    public String sleep()

{

return sleep;

};

}

Tiger类 

//Tiger.java

package animal;


public class Tiger extends Animal{//继承Animal类

public Tiger(String eat)

{

this.eat=eat;

}

}


Sheep类 

//Sheep.java

package animal;


public class Sheep extends Animal{//继承Animal类


public Sheep(String sat)

{

this.eat=sat;

}

}

 主类AnimalTest

//AnimalTest.java

package animal;


public class AnimalText {


public static void main(String[] args) {

// TODO Auto-generated method stub

        Tiger t=new Tiger("肉");

         System.out.println("老虎吃:"+t.eat()+"\n"+"老虎睡觉:"+t.sleep());

        Sheep s=new Sheep("草");

         System.out.println("绵羊吃:"+s.eat()+"\n"+"绵羊睡觉:"+s.sleep());

}


}

第二种方法——抽象

//Animal.java


package animal;


abstract class Animal {

public String sleep="趴着睡";//睡觉的行为(sleep)是一致

    public String sleep()

{

return sleep;

};

abstract public String eat(); //声明抽象方法

//行为(eat)各不相同(绵羊吃草、老虎吃肉)

}


//Tiger.java

package animal;


public class Tiger extends Animal{//继承抽象Animal类

public String eat;

public Tiger(String eat)

{

this.eat=eat;

}

public String eat()//实现抽象类中的eat

{

return eat;

}

}
//Sheep.java

package animal;


public class Sheep extends Animal{//继承抽象Animal类

public String eat;

public Sheep(String sat)

{

this.eat=sat;

}

public String eat()//实现抽象类中的eat()方法

{

return eat;

}

}
//AnimalTest.java

package animal;


public class AnimalText {


public static void main(String[] args) {

// TODO Auto-generated method stub

        Animal t=new Tiger("肉");

         System.out.println("老虎吃:"+t.eat()+"\n"+"老虎睡觉:"+t.sleep());

       Animal s=new Sheep("草");

         System.out.println("绵羊吃:"+s.eat()+"\n"+"绵羊睡觉:"+s.sleep());

}//计201 赵世伟


}

第三种方法——接口

//用接口方法

//Animal.java

package animal;


interface Animal {

public String sleep="趴着睡";//睡觉的行为(sleep)是一致

   public default  String sleep()

{

return sleep;

};

abstract public String eat(); //声明抽象方法

//行为(eat)各不相同(绵羊吃草、老虎吃肉)

}

//Tiger.java

package animal;


public class Tiger implements Animal{//接口

public String eat;

public Tiger(String eat)

{

this.eat=eat;

}

public String eat()//实现接口中的eat()方法

{

return eat;

}

}

//Sheep.java

package animal;


public class Sheep implements Animal{//接口

public String eat;

public Sheep(String sat)

{

this.eat=sat;

}

public String eat()//实现接口中的eat()方法

{

return eat;

}

}

//AnimalTest.java

package animal;


public class AnimalText {


public static void main(String[] args) {

// TODO Auto-generated method stub

        Animal t=new Tiger("肉");

         System.out.println("老虎吃:"+t.eat()+"\n"+"老虎睡觉:"+t.sleep());

       Animal s=new Sheep("草");

         System.out.println("绵羊吃:"+s.eat()+"\n"+"绵羊睡觉:"+t.sleep());

}//计201 赵世伟


}

运行截图:

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值