首页 热点专区 义务教育 高等教育 出国留学 考研考公

java动物特性的面向对象描述 项目

发布网友

我来回答

3个回答

热心网友

定义LandAnimal接口和WaterAnimal接口 ,只定义个接口好定义,只是你的题目用不到啊。(没水生和陆生啊)
下面是定义的ANIMAL类,实现了他们共有的属性。CAT,FROG没说出来啊,自己定义吧。

public class ANIMAL {
public String name;
public boolean mammal; // 哺乳动物
public boolean carnivorous;// 肉食动物
public String mood;
public int logs;

public void setName(String name) {
this.name = name;
}

public void setMammal(boolean mammal) {
if (mammal) {
System.out.println(name + "是哺乳动物");
} else {
System.out.println(name + "不是哺乳动物");
}
}

public void setCarnivorous(boolean carnivorous) {
if (carnivorous) {
System.out.println(name + "是肉食动物");
} else {
System.out.println(name + "不是肉食动物");
}
}

public void setMood(String mood1, String mood2, String mood3) {
System.out.println(name + "通常的情况下,和人打招呼的方式为:" + mood1);
System.out.println(name + "被*情绪好的时候,打招呼的方式是:" + mood2);
System.out.println(name + "烦躁的时候会:" + mood2);

}
public void setLogs(int logs){
System.out.println(name+"有"+logs+"条腿");
}

}

下面是 狗的那个类继承类ANIMAL:
public class Dog extends ANIMAL{

public Dog(){

}

public static void main(String[] args) {
ANIMAL dog = new Dog();
dog.setName("狗");//设置动物名字
dog.setMammal(true);//设置是否Mammal
dog.setCarnivorous(true);//设置是Carnivorous
dog.setMood("摇摇尾巴", "旺旺叫", "呜呜叫");//设置 在3种不同情况下的动作
dog.setLogs(4);
}

}
输出:
狗是哺乳动物
狗是肉食动物
狗通常的情况下,和人打招呼的方式为:摇摇尾巴
狗被*情绪好的时候,打招呼的方式是:旺旺叫
狗烦躁的时候会:旺旺叫
狗有4条腿

其他的动物 同样的原理。

补充:
public interface LandAnimal {

}
public interface WaterAnimal {

}
你的输出内容中 没用的到 (没有显示这两个接口有关信息,没有说明他是水生,陆生)

如果是狗的 那么直接 那个类 implements LandAnimal
public class Dog extends ANIMAL implements LandAnimal{}就行了 ,说明他是陆生的一种标志
这样就像 java.io.Serializable这个接口 ,一种标志。

热心网友

具体的对象:猫、狗、青蛙。关系:都属于动物,猫和狗属于陆生动物,青蛙属于水生。
所以应该有6个类:
动物、陆生动物、水生动物、猫、狗、青蛙。
陆生动物、水生动物继承动物类 ;猫、狗继承陆生动物类;青蛙继承水生动物类。

下面是代码

/**
* 动物抽象类
*
* @author haisheng
*
*/
public abstract class Animal {

public String creattype;//类别(哺乳、卵生)
public String eattype;//类别(肉食、杂食)

/**
* 正常行为
*/
public abstract void nomalAct();

/**
* 收到惊吓的行为
*/
public abstract void scaredAct();

}

/**
* 陆地动物
* @author haisheng
*
*/
public abstract class AnimalLand extends Animal{
/**
* 打招呼
*/
public abstract void hello();

/**
* 发声音
*/
protected void voice(String str){
System.out.println(str);
}
}

/**
* 水生动物
* @author haisheng
*
*/
public abstract class AnimalWater extends Animal{

}

/**
* 猫
* @author haisheng
*
*/
public class Cat extends AnimalLand {

public Cat() {
this.creattype="哺乳类";
this.eattype="肉食类";
}

@Override
public void nomalAct() {
voice("咕噜咕噜");
}
@Override
public void scaredAct() {
voice("嘶嘶");
}
@Override
public void hello() {
voice("喵~");
}

}

/**
* 狗
* @author xhaisheng@126.com
*
*/
public class Dog extends AnimalLand {

public Dog() {
this.creattype="哺乳类";
this.eattype="肉食类";
}

/**
* 摇尾巴
*/
public void wagTail(){
System.out.println("摇尾巴了");
}

@Override
public void nomalAct() {
voice("旺旺叫");
}
@Override
public void scaredAct() {
voice("呜呜");
}
@Override
public void hello() {
wagTail();
}

}

/**
* 青蛙
* @author haisheng
*
*/
public class Frog extends AnimalWater {

public Frog() {
this.creattype="卵生";
}

@Override
public void nomalAct() {
System.out.println("呱呱呱");
}

@Override
public void scaredAct() {
System.out.println("跳水了");
}
}

说明:AnimalWater类是个空的类没什么属性和方法,这个是便于系统以后扩展用的

热心网友

放弃吧。放弃吧。表学JAVA啦~~~~~~~~

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com