扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
定义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这个接口 ,一种标志。
呵呵,这个太简单了。
声明一个基类,叫动物。动物有三个属性:陆生、哺乳的、肉食性
声明一个子类,叫狗,继承动物,该类有自己的方法,分别是摇尾巴、叫、呜呜
以此类推,再声明一个子类猫。
青蛙类的定义有些麻烦,需要先定义接口,接口中描述水生动物,卵生。青蛙类继承动物类,同时实现接口,自己的方法分别是:呱呱呱和扑通跳入水中
public class Animal {
public String name ="";
public Animal(String name){
this.name = name;
}
public void move(){
System.out.println(name+"移动了");
}
}
public interface Mammalia {
//哺乳动物接口
public void suckle();
}
public interface Predator {
//食肉动物接口
public void eat(Animal animal);
}
public class Dog extends Animal implements Predator,Mammalia{
public Dog(String str){
super(str);
}
@Override
public void eat(Animal animal) {
System.out.println(this.name+"吃了"+animal.name);
}
@Override
public void suckle() {
System.out.println(this.name+"给小"+this.name+"喂奶");
}
public static void main(String args[]){
Dog dog = new Dog("狗");
dog.move();
dog.suckle();
Animal a = new Animal("兔子");
dog.eat(a);
}
}
具体的对象:猫、狗、青蛙。关系:都属于动物,猫和狗属于陆生动物,青蛙属于水生。
所以应该有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语言实现。(急求两天内)
public class Monkey {
private String color;
private String sex;
public Monkey(String color,String sex) {
this.color = color;
this.sex = sex;
}
public Monkey(String color) {
this.color = color;
this.sex = "公";
}
public Monkey(){}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int add(int p1,int p2,int p3) {
return p1+p2+p3;
}
public int add(int p1,int p2) {
return p1+p2;
}
}
public class Zoo {
public static void main(String[] args) {
Monkey g = new Monkey("黑");
Monkey l = new Monkey("红","母");
int p1 = g.add(1, 2);
int p2 = l.add(1, 2, 3);
System.out.println(g.getSex()+":"+p1);
System.out.println(l.getSex()+":"+p2);
}
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流