十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
定義LandAnimal接口和WaterAnimal接口 ,只定義個(gè)接口好定義,只是你的題目用不到啊。(沒水生和陸生啊)
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)公司、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了蓋州免費(fèi)建站歡迎大家使用!
下面是定義的ANIMAL類,實(shí)現(xiàn)了他們共有的屬性。CAT,FROG沒說出來啊,自己定義吧。
public class ANIMAL {
public String name;
public boolean mammal; // 哺乳動(dòng)物
public boolean carnivorous;// 肉食動(dòng)物
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 + "是哺乳動(dòng)物");
} else {
System.out.println(name + "不是哺乳動(dòng)物");
}
}
public void setCarnivorous(boolean carnivorous) {
if (carnivorous) {
System.out.println(name + "是肉食動(dòng)物");
} else {
System.out.println(name + "不是肉食動(dòng)物");
}
}
public void setMood(String mood1, String mood2, String mood3) {
System.out.println(name + "通常的情況下,和人打招呼的方式為:" + mood1);
System.out.println(name + "被撫摸情緒好的時(shí)候,打招呼的方式是:" + mood2);
System.out.println(name + "煩躁的時(shí)候會(huì):" + mood2);
}
public void setLogs(int logs){
System.out.println(name+"有"+logs+"條腿");
}
}
下面是 狗的那個(gè)類繼承類ANIMAL:
public class Dog extends ANIMAL{
public Dog(){
}
public static void main(String[] args) {
ANIMAL dog = new Dog();
dog.setName("狗");//設(shè)置動(dòng)物名字
dog.setMammal(true);//設(shè)置是否Mammal
dog.setCarnivorous(true);//設(shè)置是Carnivorous
dog.setMood("搖搖尾巴", "旺旺叫", "嗚嗚叫");//設(shè)置 在3種不同情況下的動(dòng)作
dog.setLogs(4);
}
}
輸出:
狗是哺乳動(dòng)物
狗是肉食動(dòng)物
狗通常的情況下,和人打招呼的方式為:搖搖尾巴
狗被撫摸情緒好的時(shí)候,打招呼的方式是:旺旺叫
狗煩躁的時(shí)候會(huì):旺旺叫
狗有4條腿
其他的動(dòng)物 同樣的原理。
補(bǔ)充:
public interface LandAnimal {
}
public interface WaterAnimal {
}
你的輸出內(nèi)容中 沒用的到 (沒有顯示這兩個(gè)接口有關(guān)信息,沒有說明他是水生,陸生)
如果是狗的 那么直接 那個(gè)類 implements LandAnimal
public class Dog extends ANIMAL implements LandAnimal{}就行了 ,說明他是陸生的一種標(biāo)志
這樣就像 java.io.Serializable這個(gè)接口 ,一種標(biāo)志。
呵呵,這個(gè)太簡(jiǎn)單了。
聲明一個(gè)基類,叫動(dòng)物。動(dòng)物有三個(gè)屬性:陸生、哺乳的、肉食性
聲明一個(gè)子類,叫狗,繼承動(dòng)物,該類有自己的方法,分別是搖尾巴、叫、嗚嗚
以此類推,再聲明一個(gè)子類貓。
青蛙類的定義有些麻煩,需要先定義接口,接口中描述水生動(dòng)物,卵生。青蛙類繼承動(dòng)物類,同時(shí)實(shí)現(xiàn)接口,自己的方法分別是:呱呱呱和撲通跳入水中
public class Animal {
public String name ="";
public Animal(String name){
this.name = name;
}
public void move(){
System.out.println(name+"移動(dòng)了");
}
}
public interface Mammalia {
//哺乳動(dòng)物接口
public void suckle();
}
public interface Predator {
//食肉動(dòng)物接口
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);
}
}
具體的對(duì)象:貓、狗、青蛙。關(guān)系:都屬于動(dòng)物,貓和狗屬于陸生動(dòng)物,青蛙屬于水生。
所以應(yīng)該有6個(gè)類:
動(dòng)物、陸生動(dòng)物、水生動(dòng)物、貓、狗、青蛙。
陸生動(dòng)物、水生動(dòng)物繼承動(dòng)物類 ;貓、狗繼承陸生動(dòng)物類;青蛙繼承水生動(dòng)物類。
下面是代碼
/**
* 動(dòng)物抽象類
*
* @author haisheng
*
*/
public abstract class Animal {
public String creattype;//類別(哺乳、卵生)
public String eattype;//類別(肉食、雜食)
/**
* 正常行為
*/
public abstract void nomalAct();
/**
* 收到驚嚇的行為
*/
public abstract void scaredAct();
}
/**
* 陸地動(dòng)物
* @author haisheng
*
*/
public abstract class AnimalLand extends Animal{
/**
* 打招呼
*/
public abstract void hello();
/**
* 發(fā)聲音
*/
protected void voice(String str){
System.out.println(str);
}
}
/**
* 水生動(dòng)物
* @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類是個(gè)空的類沒什么屬性和方法,這個(gè)是便于系統(tǒng)以后擴(kuò)展用的
動(dòng)物特性描述:
狗生活在陸地上(是一種陸生動(dòng)物),既是哺乳類的也是肉食性的,狗通常的時(shí)候和人打招呼會(huì)通過“搖搖尾巴”,在被撫摸感到舒服的時(shí)候,會(huì)“旺旺叫”,而在受到驚嚇情緒煩躁時(shí),會(huì)發(fā)出“嗚嗚”聲;
貓也生活在陸地上(是一種陸生動(dòng)物),既是哺乳類的也是肉食性的,貓通常的時(shí)候和人打招呼會(huì)發(fā)出“喵~”的聲音,在被撫摸情緒很好時(shí),會(huì)發(fā)出“咕嚕咕嚕”聲,而在受到驚嚇時(shí),會(huì)發(fā)出“嘶嘶”聲;
青蛙是一種兩棲動(dòng)物(既是水生動(dòng)物也是陸生動(dòng)物),既不是哺乳類的也不是肉食性的,屬于卵生。當(dāng)青蛙情緒好的時(shí)候,會(huì)在岸邊“呱呱呱”的唱歌,而再受到驚嚇時(shí),會(huì)“撲通一聲跳入水中”;
要求對(duì)以上動(dòng)物特性的描述做面向?qū)ο蟮姆治觯紫瘸槿∑渲械膶?duì)象,然后分析對(duì)象的屬性和方法,并分析各個(gè)對(duì)象之間的關(guān)系,最后用JAVA語言實(shí)現(xiàn)。(急求兩天內(nèi))
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);
}
}