java里的一些不一般值得注意的地方

java里的一些特别值得注意的地方

return 语句的作用:1.返回值 2.结束某个方法的运行;

局部变量必须要初始化,成员变量系统会默认初始值;

栈:自动分配连续的空间,后进先出,放置局部变量

堆:不连续,放置new出来的变量

       堆里面还有方法区,类的是、代码java里的一些不一般值得注意的地方信息,static变量,常量池(字符串常量等)



















 public class Animal {
      String name="Animal";
      int age=2;
      public void eat(){
          System.out.println("Animal eat");
      }
}


public class Bird extends Animal{
    String name="Bird";
     int age=20;
    public void eat(){
        System.out.println("Bird eat...");
    }
    public void sleep(){
        System.out.println("Bird sleep....");
    }
}


向上转型
        Animal a=new Bird();    
        a.eat();
      //  此处将调用子类的eat()方法。原因:b实际指向的是Bird子类,故调用时会调用子类本身的方法。
      // a.sleep();  
      //需要注意的是向上转型时a会遗失除与父类对象共有的其他方法。如本例中的sleep()方法不再为a所有。
        
向下转型
        Bird b=(Bird)a;
        b.eat();
       //向下转型,编译和运行皆不会出错,这里的向下转型是安全的。因为b1指向的是子类对象
       Animal a1=new Animal();
       Bird b1=(Bird)a1;   //不安全的向下转型,编译无错但会运行会出错
       b1.eat();            //这句话运行会出错