多态

1.同一个方法可以根据发送对象的不同而采用多种不同的行为方式

2.一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类、有关系的类

 

可以通过父类去new子类

EX:    Student s1 =  new  Student();               (子类)            能调用自己的方法、或者继承父类的方法

          Person s2 =  new  Student();                  (父类)           不能调用子类独有的方法,但是可以指向子类(new Student)

          Object s3=new  Student();

 如果子类重写了父类的方法,s1、s2调用这个方法,会执行子类的方法。

注意事项:1.是方法的多态,属性没有

2.父类和子类                  否则类型转换异常(ClassCastException)

3.存在条件: 继承关系,方法需要重写(注意不能重写的方法),父类引用指向子类对象(  Father F1= new son();  )

 引用类型转换  instanceof                   查看X Y 是否有父子类关系

sop(X  instanceof Y); 

如何让父类引用类型去使用子类的方法呢?(父类转子类)

ex: 假设student中有一个名为go的方法

 高                            低

Person p1= new student(); 

Student p1= (Student)p1;                                                                                         /*强制转换后,就可以使用

                                                          ====   ( (student)p1).go();

p1.go();                                                                                                                    */             

如果是子类转换父类,可能丢失自己本来的一些方法。

                                        

 

posted @   小布丁dd  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示