java04

2.阅读下面程序,分析是否能编译通过?如果不能,说明原因。应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来?

    编译不能通过,构造函数调用必须是构造函数中的第一个语句,拔super("Hello.Grandparent.");提前
    结果:
    GrandParent Created.String:Hello.Grandparent.
    Parent Created
    Child Created
    因为继承,不能。

3 . 阅读下面程序,分析程序中存在哪些错误,说明原因,应如何改正?正确程序的运行结果是什么?

    有3个错,向上转型父类中没有sleep;向下装型中没有加强制转换;声明父类中没有实例。
    改为:
package 为乐;
class Animal{
  void shout(){
      System.out.println("动物叫!");
  }
  public void sleep(){
	  
  }
}
class Dog extends Animal{
      public void shout(){  
          System.out.println("汪汪......!");  
     }
      public void sleep() {
       System.out.println("狗狗睡觉......");
      } 
}
public class Test{
    public static void main(String args[]) {
        Animal animal;
        animal= new Dog(); 
        animal.shout();
        animal.sleep();
        Dog dog =  (Dog) animal;
        dog.sleep(); 
        Animal animal2 = new Animal();
        Dog a=new Dog();
        animal2=a;
        dog = (Dog)animal2;
        dog.shout();
    }
}

4.运行下列程序

package 为乐;

class Person { 
   private String name ; 
   private int age ; 
   public Person(String name,int age){ 
         this.name = name ; 
         this.age = age ; 
         
   } 
 
}

public class Test{  
      public static void main(String args[]){ 
             Person per = new Person("张三",20) ; 
             System.out.println(per);
             System.out.println(per.toString()) ; 
             
  } 
}

    (1)调用了Object的输出方法。
    (2)对象输出时一定会调用Object类中的toString()方法打印内容
    (3)person类覆写了object类中的tostring方法就输出对了

(二)实验总结

1.

    ![](http://images2015.cnblogs.com/blog/1079955/201704/1079955-20170416193407915-860493964.png)


    第一题最后改完狮子喂养不好弄了,应该数组和单独都有。

(三)代码托管(务必链接到你的项目)

http://git.oschina.net/shuoge/java4

posted @ 2017-04-16 20:04  朔朔  阅读(237)  评论(0)    收藏  举报