public class HelloWorld
{
public static void main(String[] args)
{
Dog animal1 = new Dog();
Cat animal2 = new Cat();
Frog animal3 = new Frog();
if(animal1.isMammal())
System.out.println("狗是哺乳动物");
else
System.out.println("狗不是哺乳动物");
if(animal1.isCarnivorous())
System.out.println("狗是肉食动物");
else
System.out.println("狗不是肉食动物");
System.out.println("狗通常的情况下,和人打招呼的方式为:" +animal1.sayHello());
System.out.println("狗被抚摸情绪好的时候,打招呼的方式是: " +animal1.sayHello(Animal.COMFORTED));
System.out.println("狗烦躁的时候,会: " +animal1.sayHello(Animal.SCARED));
System.out.println("狗有" +animal1.getNumberOfLegs()+"条腿");
System.out.println();
if(animal2.isMammal())
System.out.println("猫是哺乳动物");
else
System.out.println("猫不是哺乳动物");
if(animal2.isCarnivorous())
System.out.println("猫是肉食动物");
else
System.out.println("猫不是肉食动物");
System.out.println("猫通常的情况下,和人打招呼的方式为: " +animal2.sayHello());
System.out.println("猫情绪好的时候会: " +animal2.sayHello(Animal.COMFORTED));
System.out.println("猫烦躁的时候会:" +animal2.sayHello(Animal.SCARED));
System.out.println("猫有" +animal2.getNumberOfLegs()+"条腿");
System.out.println();
if(animal3.isMammal())
System.out.println("青蛙是哺乳动物");
else
System.out.println("青蛙不是哺乳动物");
if(animal3.isCarnivorous())
System.out.println("青蛙是肉食动物");
else
System.out.println("青蛙不是肉食动物");
System.out.println("青蛙通常的情况下,打招呼的方式为:" +animal3.sayHello());
System.out.println("青蛙情绪好的时候会: " +animal3.sayHello(Animal.COMFORTED));
System.out.println("青蛙受到惊吓是会:" +animal3.sayHello(Animal.SCARED));
if(animal3.getLaysEggs())
System.out.println("青蛙产卵");
else
System.out.println("青蛙不产卵");
if(animal3.getGillFlag())
System.out.println("青蛙有鳃");
else
System.out.println("青蛙没有鳃");
System.out.println("青蛙有" +animal3.getNumberOfLegs()+"条腿");
}
}
abstract class Animal
{
// 下面的两个属性被声明为 public 类型的,而且是静态的
public static final int SCARED = 1;//情绪好
public static final int COMFORTED = 2;//情绪不好,烦躁
//下面的属性被声明为保护类型的,允许在子类中访问
protected boolean mammal = true; //是否哺乳动物属性
protected boolean carnivorous = true; //是否食肉动物属性
protected int mood = COMFORTED;//情绪属性
public boolean isMammal() //判断是否哺乳动物
{
return(mammal);
}
public boolean isCarnivorous() //判断是否食肉动物
{
return(carnivorous);
}
abstract public String sayHello(); //打招呼的方式,该方法是抽象的,所以必须在子类中实现
abstract public String sayHello(int moodval);
public void setMood(int newValue) //设置情绪值
{
mood = newValue;
}
public int getMood() //返回情绪值
{
return(mood);
}
}
interface LandAnimal //陆生动物接口
{
public int getNumberOfLegs(); //返回有多少只脚
}
interface WaterAnimal //水生动物接口
{
public boolean getGillFlag(); //返回是否有腮
public boolean getLaysEggs(); //返回是否产卵
}
class Dog extends Animal implements LandAnimal //狗类继承自动物类,并实现陆生动物接口
{
// 下面的属性被声明为私有的,并初始化。
private int numberOfLegs = 4;
// 缺省构造函数确保属性能够正确设置
public Dog()
{
mammal = true; //是哺乳动物
carnivorous = true; //是食肉动物
}
// 重载父类的方法
public String sayHello()
{
return("摇摇尾巴");
}
public String sayHello(int moodval)
{
this.setMood(moodval);
switch (mood) {
case SCARED:
return("呜呜叫");
case COMFORTED:
return("旺旺旺叫");
}
return("摇摇尾巴");
}
// 实现 LandAnimal接口
public int getNumberOfLegs()
{
return(numberOfLegs);
}
}
class Cat extends Animal implements LandAnimal //猫类继承自动物类,并实现生活在陆地上的动物接口
{
//声明并初始化猫的两个属性
private int numberOfLegs = 4;
private boolean tailFlag = true;
// 缺省构造函数
public Cat()
{
mammal = true;
carnivorous = true;
}
// 重载父类的方法
public String sayHello()
{
return("喵喵叫");
}
public String sayHello(int moodval)
{
this.setMood(moodval);
switch (mood) {
case SCARED:
return("嘶嘶叫");//如果情绪烦躁的话,就“嘶嘶叫”
case COMFORTED:
return("咕噜咕噜叫"); //如果情绪好的话,发出“咕噜咕噜”声
}
return("喵喵叫"); //如果情绪好的话,发出“喵~”声
}
// 实现 LandAnimal接口
public int getNumberOfLegs()
{
return(numberOfLegs);
}
}
class Frog extends Animal implements LandAnimal, WaterAnimal
{
//声明并初始化青蛙的四个属性
private boolean gillFlag = true;
private boolean laysEggs = true;
private int numberOfLegs = 4;
private boolean tailFlag = true;
//缺省构造函数
public Frog()
{
mammal = false;
carnivorous = false;
}
// 重写父类的“打招呼”的方法
public String sayHello()
{
return("呱呱呱");
}
public String sayHello(int moodval)
{
this.setMood(moodval);
switch (mood) {
case SCARED:
return("扑通一声跳入水中");
case COMFORTED:
return("呱呱呱");
}
return("呱呱呱");
}
// 实现 WaterAnimal接口
public boolean getGillFlag()
{
return(gillFlag);
}
public boolean getLaysEggs()
{
return(laysEggs);
}
// 实现 LandAnimal接口
public int getNumberOfLegs()
{
return(numberOfLegs);
}
}
{
public static void main(String[] args)
{
Dog animal1 = new Dog();
Cat animal2 = new Cat();
Frog animal3 = new Frog();
if(animal1.isMammal())
System.out.println("狗是哺乳动物");
else
System.out.println("狗不是哺乳动物");
if(animal1.isCarnivorous())
System.out.println("狗是肉食动物");
else
System.out.println("狗不是肉食动物");
System.out.println("狗通常的情况下,和人打招呼的方式为:" +animal1.sayHello());
System.out.println("狗被抚摸情绪好的时候,打招呼的方式是: " +animal1.sayHello(Animal.COMFORTED));
System.out.println("狗烦躁的时候,会: " +animal1.sayHello(Animal.SCARED));
System.out.println("狗有" +animal1.getNumberOfLegs()+"条腿");
System.out.println();
if(animal2.isMammal())
System.out.println("猫是哺乳动物");
else
System.out.println("猫不是哺乳动物");
if(animal2.isCarnivorous())
System.out.println("猫是肉食动物");
else
System.out.println("猫不是肉食动物");
System.out.println("猫通常的情况下,和人打招呼的方式为: " +animal2.sayHello());
System.out.println("猫情绪好的时候会: " +animal2.sayHello(Animal.COMFORTED));
System.out.println("猫烦躁的时候会:" +animal2.sayHello(Animal.SCARED));
System.out.println("猫有" +animal2.getNumberOfLegs()+"条腿");
System.out.println();
if(animal3.isMammal())
System.out.println("青蛙是哺乳动物");
else
System.out.println("青蛙不是哺乳动物");
if(animal3.isCarnivorous())
System.out.println("青蛙是肉食动物");
else
System.out.println("青蛙不是肉食动物");
System.out.println("青蛙通常的情况下,打招呼的方式为:" +animal3.sayHello());
System.out.println("青蛙情绪好的时候会: " +animal3.sayHello(Animal.COMFORTED));
System.out.println("青蛙受到惊吓是会:" +animal3.sayHello(Animal.SCARED));
if(animal3.getLaysEggs())
System.out.println("青蛙产卵");
else
System.out.println("青蛙不产卵");
if(animal3.getGillFlag())
System.out.println("青蛙有鳃");
else
System.out.println("青蛙没有鳃");
System.out.println("青蛙有" +animal3.getNumberOfLegs()+"条腿");
}
}
abstract class Animal
{
// 下面的两个属性被声明为 public 类型的,而且是静态的
public static final int SCARED = 1;//情绪好
public static final int COMFORTED = 2;//情绪不好,烦躁
//下面的属性被声明为保护类型的,允许在子类中访问
protected boolean mammal = true; //是否哺乳动物属性
protected boolean carnivorous = true; //是否食肉动物属性
protected int mood = COMFORTED;//情绪属性
public boolean isMammal() //判断是否哺乳动物
{
return(mammal);
}
public boolean isCarnivorous() //判断是否食肉动物
{
return(carnivorous);
}
abstract public String sayHello(); //打招呼的方式,该方法是抽象的,所以必须在子类中实现
abstract public String sayHello(int moodval);
public void setMood(int newValue) //设置情绪值
{
mood = newValue;
}
public int getMood() //返回情绪值
{
return(mood);
}
}
interface LandAnimal //陆生动物接口
{
public int getNumberOfLegs(); //返回有多少只脚
}
interface WaterAnimal //水生动物接口
{
public boolean getGillFlag(); //返回是否有腮
public boolean getLaysEggs(); //返回是否产卵
}
class Dog extends Animal implements LandAnimal //狗类继承自动物类,并实现陆生动物接口
{
// 下面的属性被声明为私有的,并初始化。
private int numberOfLegs = 4;
// 缺省构造函数确保属性能够正确设置
public Dog()
{
mammal = true; //是哺乳动物
carnivorous = true; //是食肉动物
}
// 重载父类的方法
public String sayHello()
{
return("摇摇尾巴");
}
public String sayHello(int moodval)
{
this.setMood(moodval);
switch (mood) {
case SCARED:
return("呜呜叫");
case COMFORTED:
return("旺旺旺叫");
}
return("摇摇尾巴");
}
// 实现 LandAnimal接口
public int getNumberOfLegs()
{
return(numberOfLegs);
}
}
class Cat extends Animal implements LandAnimal //猫类继承自动物类,并实现生活在陆地上的动物接口
{
//声明并初始化猫的两个属性
private int numberOfLegs = 4;
private boolean tailFlag = true;
// 缺省构造函数
public Cat()
{
mammal = true;
carnivorous = true;
}
// 重载父类的方法
public String sayHello()
{
return("喵喵叫");
}
public String sayHello(int moodval)
{
this.setMood(moodval);
switch (mood) {
case SCARED:
return("嘶嘶叫");//如果情绪烦躁的话,就“嘶嘶叫”
case COMFORTED:
return("咕噜咕噜叫"); //如果情绪好的话,发出“咕噜咕噜”声
}
return("喵喵叫"); //如果情绪好的话,发出“喵~”声
}
// 实现 LandAnimal接口
public int getNumberOfLegs()
{
return(numberOfLegs);
}
}
class Frog extends Animal implements LandAnimal, WaterAnimal
{
//声明并初始化青蛙的四个属性
private boolean gillFlag = true;
private boolean laysEggs = true;
private int numberOfLegs = 4;
private boolean tailFlag = true;
//缺省构造函数
public Frog()
{
mammal = false;
carnivorous = false;
}
// 重写父类的“打招呼”的方法
public String sayHello()
{
return("呱呱呱");
}
public String sayHello(int moodval)
{
this.setMood(moodval);
switch (mood) {
case SCARED:
return("扑通一声跳入水中");
case COMFORTED:
return("呱呱呱");
}
return("呱呱呱");
}
// 实现 WaterAnimal接口
public boolean getGillFlag()
{
return(gillFlag);
}
public boolean getLaysEggs()
{
return(laysEggs);
}
// 实现 LandAnimal接口
public int getNumberOfLegs()
{
return(numberOfLegs);
}
}