黑马程序员技术交流社区

标题: 多态知识点总结 [打印本页]

作者: 挨踢小白    时间: 2016-11-20 22:59
标题: 多态知识点总结

多态

面向对象的第三大特性。

一种事物在不同情况下的多种形态。

1.多态的前提要有继承
2.最好有方法重写
3.父类引用指向子类对象

动物 d =new 驴();


多态格式

父类类型 变量名= new 子类类型();

父类是个具体的类 可以有多态 具体类多态
        抽象的类  也可以有多态 抽象类多态
        接口        也可以有多态度         接口多态


总结: 父类/父接口 引用变量=new 子类/实现类();

------------------------
多态中成员变量的访问特点


       
编译阶段        看等号左边(检查语法错误 检查该类型中有没有这样的成员)
运行                看等号左边

“编译看左边 运行看左边”


多态中成员方法


运行看右边,编译时候全部看左边。
运行时候呢,只有成员方法看右边,其他的看左边。

运行时,成员方法先去子类中找,没有再去父类中找。

(注:这块儿易懵逼,且行且珍惜)
--------------------------------
关键字 instanceof 判断

对象 instanceof 类型
(判断这个对象 是不是属于这个类型)

结果为(true 或者false)

--------------------------------
多态 转换
Animal a =new Cat();
Cat c= (Cat)a;
c.play ();
向下转型 父类类型往子类类型转

当你做向下转型时 需要知道 转换的父类类型
必须指向要转换的子类对象;

转换ok

if(a instanceof Cat){
Cat c=(Cat)a;
c.paly();

}else if(a instanceof Dog){
Dog d=(Dog)a;

}else{


}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2