/*
根据以下这段话的描述,用面向对象的思想实现
狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。
狗通常的时候和人打招呼会通过“摇摇尾巴”,在被抚摸情绪很好的时候,
会“旺旺叫”,而在受到惊吓情绪烦躁时,会发出“呜呜”声;
猫也生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。
猫通常的时候和人打招呼会发出“喵~”的声音,在被抚摸情绪很好时,
会发出“咕噜咕噜”声,而在受到惊吓时,会发出“嘶嘶”声;
青蛙是一种两栖动物(既是水生动物也是陆生动物),既不是哺乳类的也不是肉食性的,
属于卵生。青蛙通常的时候和人打招呼会通过“呱呱叫”,当青蛙情绪好的时候,
会在岸边“呱呱呱”的唱歌,而在受到惊吓时,会“扑通一声跳入水中”
*/
abstract class Animal //不能生成对象了 含有共性的东西是抽象类
{
public static final int HAPPY=1;
public static final int UNHAPPY=2;
protected boolean mammal; //没有set get子类也可以访问
protected boolean carnivorous;//肉食
private int mood; //1 2
public boolean isMammal(){return mammal;}public boolean isCarnivorous(){return carnivorous;}public void setMood(int mood){this.mood=mood;}public int getMood(){return mood;}public abstract String sayHello();//打招呼public abstract String sayHello(int mood);//受情绪影响的打招呼方式
}
//陆生
interface land
{
public abstract int getNumberOfLegs();
}
//水生
interface warter
{
public boolean getGillFlags();
public boolean getLayEggsFlag();
}
class Dog extends Animal implements land
{
private int numberOfLegs=4;
Dog(){this.mammal=true;this.carnivorous=true;}public String sayHello(){return "摇摇尾巴";}public String sayHello(int mood){setMood(mood);switch(getMood()){case HAPPY:return "旺旺叫";//;不用加break因为return返回到调用位置了case UNHAPPY:return "呜呜";default:return "摇摇尾巴";}}public int getNumberOfLegs(){return numberOfLegs;}
}
class Demo11
{
public static void main(String[] args)
{
Dog gou = new Dog();
if(gou.isMammal())System.out.println("狗是哺乳动物");elseSystem.out.println("狗不是哺乳动物");if(gou.isCarnivorous())System.out.println("狗是肉食动物");elseSystem.out.println("狗不是肉食动物");System.out.println("狗通常打招呼的方式:"+gou.sayHello());System.out.println("狗情绪好的时候打招呼的方式:"+gou.sayHello(Animal.HAPPY));System.out.println("狗收到惊吓时候打招呼的方式:"+gou.sayHello(Animal.UNHAPPY));System.out.println("狗有"+gou.getNumberOfLegs()+"条腿");}
}
狗生活在陆地上(是一种陆生动物) 既是哺乳类的也是肉食性的。 狗通常的时候和人打招呼会通过“摇摇尾巴” 在被抚摸情绪很好的时候 会“旺旺叫” 而在受到惊吓情绪烦躁时 会发出“呜呜”声;