多态
多态
关于对象和对象的引用的的理解:
Demo demo=new Demo();
这一条语句,其实包括了四个动作:
1)右边的“new Demo”,是以Demo类为模板,在堆空间里创建一个Demo对象。
2)末尾的()意味着,在对象创建后,立即调用Demo类的构造函数,对刚生成的对象进行初始化。
3)左边的“Demo demo”创建了一个Demo类引用变量,它存放在栈空间中。也就是用来指向Demo对象的对象引用。
4)“=”操作符使对象引用指向刚创建的那个Demo对象。
关于重写和多态的理解
public class Rewrite {
    public static void main(String[] args) {
        //非静态方法:子类重写类父类方法,方法的调用和右边类型有关
        A a = new A();
        a.test();
        B b = new A();/*父类的引用指向子类的对象,对象的类型是A,对象的引用是B,对象能用的方法取决于引用,若有重写,执行时走的方法时子类重写后的方法*/
//        b.test();
//        B b2 = new B();
        //静态方法:方法的调用只和左边的类型有关
        A a1 = new A();
        a.test1();
        B b1 = new A();
        b.test1();
    }
}
instanceof
b = a instanceof A  //返回值类型为bool,判断引用a是否与A存在继承关系
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号