代码块分类:
局部代码块:在某个方法中,或者某个代码块中;作用:限制变量的声明周期
main(String args){
{
int num = 10;
System.out.println(num);
}
System.out.println("hello");
//num变量已经不存在,可以释放内存
{
int num = 20;
System.out.println(num);
}
多态必须要有继承关系;
多态是指父类类型的变量存储了子类对象的引用:
创建对象的格式:
假设 Person父类 Student子类
Student st = new Student();
Person p = new Student();
Person p = new Person();
子类的成员覆盖父类的成员时(Person p = new Student();):
1.成员变量:编译看左边(父类必须要有,否则编译错误),运行看左边(运行时,打印的值是父类的);
2.成员方法:编译看左边(父类必须要有,否则编译错误),运行看右边(运行时,打印的值是子类的);跟对象走的
3.静态方法:编译看左边(父类必须要有,否则编译错误),运行看左边(运行时,打印的值是父类的)。跟类走的
多态中父类的引用不能访问子类的特有属性,但是可以通过强制转换转换成它所存储的子类对象的引用。
Class Animal; Class Cat extends Animal; Class Dog extends Animal
判断关键字:instanceof(只能用于引用类型的引用)格式:
变量 instanceof 某类类型
Animal a = new Cat();
if(a instanceof Cat){
Cat a = (Cat)a;
c.eat();
}
返回:boolean值:如果为true:表示左边的变量是右边的某类类型,可以安全强制转换。
如果为false:表示右边的变量不是右边的某类类型。