A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Animal
{
        static{
                System.out.println("Animal静态代码块");
        }
        private String name;
        private int age;

        public Animal(){System.out.println("Animal无参数构造代码块");}
        public Animal(String name,int age)
        {
                this.name=name;
                this.age=age;
                System.out.println("Animal构造代码块");
        }
        public void setName(String name){
                this.name=name;
        }
        public void setAge(int age){
                this.age=age;
        }
        public void speak()
        {
                System.out.println("大家好我叫"+name+"今年"+age+"岁");
        }
        public void eat()
        {
                System.out.println("主人,我饿了,咋们该吃饭了!");
        }
        public void run()
        {
                System.out.println("主人,你看我跑的多快!");
        }

}
class Dog extends Animal
{
        static
        {
                System.out.println("Dog静态代码块");
        }
        {
                System.out.println("Dog构造代码块");
        }
    public Dog() {}
        public Dog (String name,int age) {
        super(name,age);
                 System.out.println("Dog构造方法");
    }

       
        public void eat()

        {
                super.eat();
                //System.out.println("主人,我饿了,咋们该吃饭了!");
                System.out.println("主人,我好像吃肉骨头!");
        }

}
class Cat extends Animal
{
        static{
                System.out.println("Cat静态代码块");
        }
        {
                System.out.println("Cat构造代码块");
        }
        public Cat(){}
        public Cat (String name,int age)
        {
                super("喵喵",3);
                System.out.println("Cat构造方法");
    }
       
        public void eat()

        {
                super.eat();
                //System.out.println("主人,我饿了,咋们该吃饭了!");
                System.out.println("主人,今中午吃鱼好不好嘛?喵喵...");
        }

}

class AnimalTest
{
        public static void main(String[] args)
        {
                Dog a= new Dog();
                a.eat();
                a.speak();
                a.run();
                a.setName("旺财");
                a.setAge(5);
                a.speak();
                System.out.println("-----------------------------");

                Cat b= new Cat();
                b.eat();
                b.speak();
                b.run();
                System.out.println("-----------------------------");

                Cat c= new Cat("喵喵",3);

                b.eat();
                b.speak();
                b.run();


        }
}
在使用了子类的有参数构造方法,赋值之后,得到的结果还是默认的null和0,求大神解答!

评分

参与人数 1黑马币 +2 收起 理由
杨佳名 + 2 淡定

查看全部评分

5 个回复

正序浏览
古都旧城 发表于 2014-12-23 23:07
小狗那个a.setName("旺财"); 和 a.setAge(5); 应该写在   a.speak(); 之前      第一个小猫你直接没有赋值 ...

楼主惭愧啊,编译不报错,没有仔细去看了,研究了一晚上!
回复 使用道具 举报
古都旧城 发表于 2014-12-23 23:07
小狗那个a.setName("旺财"); 和 a.setAge(5); 应该写在   a.speak(); 之前      第一个小猫你直接没有赋值 ...

楼主惭愧啊,编译不报错,没有仔细去看了,研究了一晚上!
回复 使用道具 举报
最后几行的调用对象打错了!
回复 使用道具 举报
小狗那个a.setName("旺财"); 和 a.setAge(5); 应该写在   a.speak(); 之前      第一个小猫你直接没有赋值,当然木有了   至于第二个小猫你的对象名字写错了 哈哈
回复 使用道具 举报
大神们,我错了,我没看清楚,最后的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马