首页 > 代码库 > java里的一些特别值得注意的地方
java里的一些特别值得注意的地方
return 语句的作用:1.返回值 2.结束某个方法的运行;
局部变量必须要初始化,成员变量系统会默认初始值;
栈:自动分配连续的空间,后进先出,放置局部变量
堆:不连续,放置new出来的变量
堆里面还有方法区,类的是、代码信息,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(); //这句话运行会出错