动物(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 赵世伟
}
运行截图: