日期:2014-05-20  浏览次数:20680 次

求大神帮忙看不知道 没想明白哪出的问题JAVA
package com;

public class TestAnimal{

public static void main(String args[]) {
Animal A=new Animal();
A.name();
Cat c=new Cat();
}


class Animal{
public String name;
Animal(String n){
this.name=n;
}

}
class Cat extends Animal{
public String eyesColor;
Cat(String n,String c){
super(n);
this.eyesColor=c;
}
}
class Dog extends Animal{
public String furColor;
Dog(String n,String f){
super(n);
this.furColor=f;

};

}
}
这个main函数中是什么问题,没想明白,求大神帮解释下。
------解决方案--------------------
引用:
Quote: 引用:

Animal构造函数有参数应该: Animal A = new Animal("Dog"); Animal中的name是成员变量不是方法 A.name="Cat";

Cat也只有带参构造函数,必须传参new对象

我下面的方法两个参数,按照你说的那样我这样写
public static void main(String args[]) {
Animal A=new Animal("Dog");

Cat c=new Cat("a","DDOG");
}
  eclipse  就报错  反应不过来了~  


你的Animal、Cat类都是内部类,解决方法:
1)Animal A = new TestAnimal().new Animal("Dog");

Cat c = new TestAnimal().new Cat("a", "DDOG");
2)把Animal和Cat将他们独立出来不要放在TestAnimal这个类里面
------解决方案--------------------
内部类的话 必须先实例化外部类 再用外部类去调用内部类
------解决方案--------------------
要调用一个类内的成员(方法,变量,或内部类),都需要先new这个类的对象,用这个对象去调用。
img=http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/3.gif][/img]