黑马程序员技术交流社区

标题: 各位大神帮我看看下面这段代码,到底是哪里的问题??谢谢了 [打印本页]

作者: a546036242    时间: 2015-7-18 19:27
标题: 各位大神帮我看看下面这段代码,到底是哪里的问题??谢谢了
        class Animal{
     
     private Animal(){}
         
         public void  eat(){
         
         System.out.println("动物吃饭");
         }
     public void sleep(){
         
         System.out.println("动物睡觉");
         
         }

        }

        class Dog extends Animal{
   
       
        public void  eat(){
         
         System.out.println("狗吃肉");
         }
     public void sleep(){
         
         System.out.println("狗站着睡觉");
         
         }
   


        }


        class Pig extends Animal{

    public void  eat(){
         
         System.out.println("猫吃鱼");
         }
     public void sleep(){
         
         System.out.println("猫趴着睡觉");
         
         }



        }


class Cat extends Animal{
   
   
   public void  eat(){
         
         System.out.println("猪拱白菜");
         }
     public void sleep(){
         
         System.out.println("猪侧着睡觉");
         
         }





        }

class AnimalTool{
  AnimalTool(){}
   public static void  operate(Animal c){
        c.eat();
            c.sleep();
   
   
   }

}       
       
       
       
class AnimalTest{
   
   public static void main(String[] args){
      
       Dog c1=new Dog();
           Dog c2=new Dog();
           Dog c3=new Dog();
           c1.eat();
           c1.sleep();
       c2.eat();
           c2.sleep();
           c3.eat();
           c3.sleep();
       System.out.println("--------------------------------");
   
       Pig s1=new Pig();
           Pig s2=new Pig();
           Pig s3=new Pig();
       s1.eat();
           s1.sleep();
       s2.eat();
           s2.sleep();
           s3.eat();
           s3.sleep();
       System.out.println("--------------------------------");
   
       Cat n1=new Cat();
           Cat n2=new Cat();
           Cat n3=new Cat();
           n1.eat();
           n1.sleep();
       n2.eat();
           n2.sleep();
           n3.eat();
           n3.sleep();
       System.out.println("--------------------------------");
          
           AnimalTool.operate(c1);
           AnimalTool.operate(c2);
           AnimalTool.operate(c3);
           AnimalTool.operate(s1);   
           AnimalTool.operate(s2);
           AnimalTool.operate(s3);
           AnimalTool.operate(n1);
           AnimalTool.operate(n2);
           AnimalTool.operate(n3);
      System.out.println("--------------------------------");
          
     AnimalTool a=new AnimalTool();
       a.operate(c1);
    System.out.println("--------------------------------");
     Animal cc=new Animal();
         cc.eat();
         cc.sleep();
   
   
   }










}
作者: 李文思    时间: 2015-7-18 19:55
建议你使用,编辑器当中的代码功能,格式会整齐不少,还带行号。
并且,写程序能写注释的地方尽量写明注释,不然一段时间过后,你自己看起来都很费力。
作者: gongyanfa123    时间: 2015-7-18 20:36
让人看起来瞬间就蒙圈了。希望下楼能给个正解。
作者: Haunis    时间: 2015-7-18 22:37
。。。
就看到子类猫 拱白菜了
作者: 辉大大    时间: 2015-7-18 23:29
哥们不看啥,我都不看你后面了,你父类的无参构造方法是private修饰的,子类无参构造咋办啊,你这似乎还是多态的问题
作者: softzhang    时间: 2015-7-19 00:08
你这貌似有两个问题1:猫类Cat()里面输出的“猪”,猪类Pig()里面输出的是“猫”。
2:父类构造函数权限异常,导致子类无法调用,可以设置为默认、protected、public。
作者: 不怕黑人    时间: 2015-7-19 00:27
佩服看下来的同志。
作者: T-l-H、小生    时间: 2015-7-19 00:52
看着醉醉的,一个注释都木有~~~
作者: 幸_好    时间: 2015-7-19 04:51
代码写的真乱
作者: icichacici    时间: 2015-7-19 06:55
应该写一下注释,太乱啦
作者: 帅帅loyal    时间: 2015-7-19 08:42
我看了第二行就没有往下看,,,你干嘛要把父类的无参构造函数私有化了,,子类继承父类的时候都要调用父类的构造函数的
作者: wing-SF    时间: 2015-7-19 10:39
看了评论,我选择放弃,昨天就给以个哥们看了一长串没注释的代码。。。费死眼睛了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2