java 多态
多态
实际就是 父类引用变量类型,指向子类实际对象。
 对象能执行那些方法,主要有左边的引用类型确定,与右边的实际对象关系不大——
注意事项:
- 
多态是方法的多态,属性没有多态。 
- 
必须有联系,父类和字类,如果没有汇报错 ClassCastException 
- 
存在条件,继承关系 
- 
当为父类引用类型是,使用方法,会在父类查找,没有,则报错,如果子类有重写,则调用子类的 - 对于重写方法,以下类型是不可以重写的
- static : 方法直接属于类,能够公共调用
- final : 常量,位于常量池,公共访问
- private : 方法为私有变量,不可继承
 
 
- 对于重写方法,以下类型是不可以重写的
- 
instanceof(类型转换): 引用类型,判断一个对象是什么类型,返回boolea类型,类与类关系判断 Person p=new Student(); bool=p instanceof Student; //判断左边,当不能直接强制类型转换时,会直接报错; 当允许时,判断右边,查看实际对象能否强制对象转换,能:true,不能:false //类的强制类型转换:父类转化为子类- 
编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定。 
- 
obj 操作数的类型必须是引用类型或空类型; 否则,会发生编译时错误。 
- 
实现原理https://www.cnblogs.com/ysocean/p/8486500.html#_label6 boolean result; if (obj == null) { result = false; } else { try { T temp = (T) obj; // checkcast result = true; } catch (ClassCastException e) { result = false; } }
 
- 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号