多态
2015-07-01 13:37
381 查看
1、同一方法中,因参数类型不同而导致执行效果不同的现象就是多态。
1.1 父类类型的变量引用一个子类类型的对象 ,父类名 变量=new 子类名();
例:
例如:
2、关键字instanceof,用于判断一个对象是否为某个类或接口的实例或者子类实例。
语法格式:对象(或者对象引用变量) instanceof 类(接口)
从上概况,多态可以总结为:
1、父类的变量引用指向子类对象;
2、父类的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,不可调用;
3、父类中的某个方法在父类中定义而没被子类重写时,父类的引用才可以调用;
4、父类中定义了某方法,在子类中重写了该方法,那么父类的引用将会调用子类中的该方法。
1.1 父类类型的变量引用一个子类类型的对象 ,父类名 变量=new 子类名();
例:
public class Oper { public static void main(String[]args){ Father fa1=new Child(); Father fa2=new Son(); fathershow(fa1); fathershow(fa2); } public static void fathershow(Father fa) { fa.show(); } } //定义Father接口 interface Father{ void show(); //定义抽象方法 } //定义Child类实现Father接口 class Child implements Father{ //实现show()方法 public void show(){ System.out.println("hhhh"); } } //定义son类实现Father接口 class Son implements Father{ //实现show()方法 public void show(){ System.out.println("heihei"); } }1.2、子类对象当做父类类型使用,即上例中的
Father fa1=new Child(); Father fa2=new Son();将子类对象当作父类使用时不需要任何显式地声明,但是此时不能通过父类变量(即fa1,fa2)去调用子类中的某些方法。
例如:
Child child =new Child(); fathershow(child);此时,main方法中调用fathershow()时传入了Child类型的对象,而fathershow()的参数类型为Father,这便将子类Child的对象当作父类类型使用
2、关键字instanceof,用于判断一个对象是否为某个类或接口的实例或者子类实例。
语法格式:对象(或者对象引用变量) instanceof 类(接口)
fa instanceof Child
从上概况,多态可以总结为:
1、父类的变量引用指向子类对象;
2、父类的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,不可调用;
3、父类中的某个方法在父类中定义而没被子类重写时,父类的引用才可以调用;
4、父类中定义了某方法,在子类中重写了该方法,那么父类的引用将会调用子类中的该方法。
相关文章推荐
- 在python正在使用mysql
- JS 键值对
- 安卓查看当前网络的ip
- 安装php扩展后,执行时找不到扩展 class xxx no found
- 各语言技术列表
- 【Java基础学习笔记】输入输出流之Reader
- rich:pickList标签的使用
- ios json数据解析
- Assert()
- Windows Server 2012部署Enterprise Solution 5.4
- DSR on Openstack POC
- Shortest Palindrome leetcode-java
- 扎克伯格:我们为何要研究人工智能和虚拟现实
- Shell脚本之数组
- 8天学通MongoDB——第四天 索引操作
- db2日志报错 Bad Queue Handle
- MySQL 自增列插入0值的方法
- RMAN-06059: expected archived log not found, loss of archived log compromises recoverability
- DNS服务器
- Qt获取当前时间