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 赵世伟


}

运行截图:

Java 实验类作业 继承抽象类接口_第1张图片

你可能感兴趣的:(java基础,java)