java问题

qq_38721679 2017-06-21 09:26:48
import java.util.Scanner;
abstract class Animal
{
public static final String comforted="情绪平稳";
public static final String scared="情绪暴躁";
protected int mood=0;
protected String mammal;
protected String carnivous;

public void setmood()
{
Scanner input=new Scanner(System.in);
int sum=input.nextInt();
mood=sum;
}
public int getmood()
{
return mood;
}

public Animal(String mammal,String carnivous)
{
this.mammal=mammal;
this.carnivous=carnivous;
}

public void isCarnivorous()
{
System.out.println("它是"+carnivous);
}

public void isMammal()
{
System.out.println("它是"+mammal);
}
abstract public void sayHello();
abstract public void sayHello(int mood);
}


interface LandAnimal
{
void getNumberOfLegs();
}

interface WaterAnimal
{
void hasGills();
void layEggs();
}

class Cat extends Animal implements LandAnimal
{
public void sayHello()
{
System.out.println("Cat:"+comforted+",喵喵。");
}
public Cat(String mammal,String carnivous)
{
super(mammal,carnivous);
}
public void sayHello(int mood)
{
System.out.println("Cat:"+scared+",喵~喵~");
}
public void getNumberOfLegs()
{
System.out.println("它有四条腿。");
}
}


class TestAnimal
{
public static void main(String[] args)
{
Animal a;
a=new Dog("哺乳动物","肉食动物");
a.sayHello();
a.isMammal();
a.isCarnivorous();
a.setmood();
System.out.println(a.getmood());
a.sayHello(mood);
a=new Cat("哺乳动物","肉食动物");
a.sayHello();
a.isMammal();
a.isCarnivorous();
a=new Frog("卵生动物","肉食动物");
a.sayHello();
a.isMammal();
a.isCarnivorous();
}
}


省略了两个对象类,sayHello(mood)方法最后运行说找不到mood,因为什么呢?
...全文
197 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
自由自在_Yu 2017-06-22
  • 打赏
  • 举报
回复
mood是定义在Animal这个类中,不能再TestAnimal这个类中直接引用的 a.sayHello(mood);是在静态static main里面引用,所以mood要是static类型 protected static int mood = 0; . . a.sayHello(Animal.mood);
u013474266 2017-06-21
  • 打赏
  • 举报
回复
a.sayHello(mood);mood这个属性没有定义
什么都不能 2017-06-21
  • 打赏
  • 举报
回复
a.sayHello(mood); main是静态方法,mood是实例成员,一个放在栈,一个放到堆里
qq_38721679 2017-06-21
  • 打赏
  • 举报
回复
引用 1 楼 u013474266 的回复:
a.sayHello(mood);mood这个属性没有定义
在Animal类里不是定义了已经? protected int mood=0;

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧