偶是大三的学生,我们开设的java课程,下面是我们老是布置的一道题,
我做了半天,可还是老报错...实在没办法,希望有朋友能帮我看看创建父类Animal和子类Dog要求如下:
(1)Animal(父类)中定义至少两个成员变量,一个带参数的构造方法,一个成员方法。
(2)Dog(子类)中定义两个以上成员变量,隐藏父类中的一个成员变量,重写父类中的一个成员方法。
(3)对子类进行实例化,输出对象的成员变量值(包括从父类继承而来的变量),调用对象的各成员方法(包括从父类继承来的方法)。我写的java
class Animal{
int leg,eye;
String skinColor;
public Animal(int l,int e,String s ) 
  {
leg=l;
eye=e;
skinColor=s;
  }       void pint(){
      if(leg==4)
      System.out.println("I can run");
      else
      System.out.println("I can't run");
        }
       boolean skinYellow(){
      return skinColor.equals("yellow");
        }
        }class Dog extends Animal{ String eyeColor,skinColor;
 int tailLength;
public Dog(){
}
void skinColor(){
    System.out.println("my skin color is"+" "+skinColor);

}


          }
 
public class Test{
public static void main(String args[]){

Dog d1=new Dog();
d1.eyeColor="yellow";

System.out.println(eyeColor+" "+tailLength+" "+skinColor+" "
         +" "+leg+" "+eye);
d1.print();
Animal.skinColor();

}
          }
老是报错.....悲剧....

解决方案 »

  1.   

    改了错误,但实现的功能不完整,自己弄吧。class Animal{
    int leg,eye;
    String skinColor;
    public Animal(int l,int e,String s ) 
    {
    leg=l;
    eye=e;
    skinColor=s;
    }
        public Animal(){
        
        }
      void pint(){
      if(leg==4)
      System.out.println("I can run");
      else
      System.out.println("I can't run");
      }
      boolean skinYellow(){
      return skinColor.equals("yellow");
      }
      } class Dog extends Animal{ String eyeColor,skinColor;
    int tailLength;
    public Dog(){
    }
    void skinColor(){
    System.out.println("my skin color is"+" "+skinColor); }
      }
     
    public class Test{
    public static void main(String args[]){ Dog d1=new Dog();
    d1.eyeColor="yellow"; System.out.println(d1.eyeColor+" "+d1.tailLength+" "+d1.skinColor+" "
    +" "+d1.leg+" "+d1.eye);
    Animal a=new Animal();
    a.pint();
    d1.skinColor(); }
      }
      

  2.   

    在你代码基础上改了下,注意注释
    class Animal {
    int leg, eye; String skinColor; public Animal(int l, int e, String s) {
    leg = l;
    eye = e;
    skinColor = s;
    } //此处你的方法名写成了pint
    void print() {
    if (leg == 4)
    System.out.println("I can run");
    else
    System.out.println("I can't run");
    } boolean skinYellow() {
    return skinColor.equals(skinColor);
    }
    }class Dog extends Animal { String eyeColor;
    //把毛皮颜色隐藏掉,设为private,达到隐藏父类变量目的。
    //注意,直接new父类还是能访问父类的skinColor,只不过无法通过子类访问父类的了
    private String skinColor;
    int tailLength; //这里必须显式调用父类构造方法,除非父类是也有个无参数构造方法,
    //或者父类没定义构造方法,这里最好把颜色作为参数传进来
    public Dog(String s) {
    super(4, 2, s);
    this.skinColor = s;
    }

    //覆盖父类方法
    void print() {
    if (leg == 4)
    System.out.println("Dog:I can run");
    else
    System.out.println("Dog:I can't run");
    } void skinColor() {
    System.out.println("my skin color is" + " " + skinColor); }}public class Test {
    public static void main(String args[]) { //这里传个毛皮颜色给构造方法
    Dog d1 = new Dog("white");
    d1.eyeColor = "yellow";
    System.out.println(d1.eyeColor + " " + d1.tailLength + " " 
    + " " + d1.leg + " " + d1.eye);
    d1.print();

    // Animal.skinColor();不能这样调用非静态方法,改成如下
    d1.skinColor(); }
    }
      

  3.   

    可以先不要在这些小问题上纠缠,这样会打击你学东西的热情,迟早会懂的,我自学java,开始好多都不懂,几乎都没信心le,后来硬着头皮学后面的,最终前面的自然而然的就懂了