4. Java 2 SE 方法重写 & 多态
来源:互联网 发布:入驻淘宝商城费用 编辑:程序博客网 时间:2024/05/16 05:23
1. 方法重写(Override):子类与父类的方法返回类型一样、方法名称一样,参数一样,这样子类和父类的方法构成了重写关系。
方法重写与方法重载的关系:
重载发生在同一个类的内部的两个或多个方法。
重写发生在父类与子类之间
2. 当两个方法形成重写关系时,可以在子类的方法中通过 super.X() 形式调用父类的 X() 方法,其中 super.X() 不必放在第一行语句,因此此时父类对象已经构造完毕,先调用父类的 X() 方法还是先调用子类的 X() 方法是根据程序的逻辑决定的。
3.在定义一个类的时候,如果没有显示指定该类的父类,那么该类就会继承于java.lang.Object类(JDK提供的一个类,Object类是Java中所有类的直接或者间接父类)
4. 多态(Polymorphism):我们说子类就是父类(玫瑰是花,男人是人),因此多态的意思就是:父类型的引用可以指向子类型的对象。(可以参考Thinking in Java,Polymorphism一章,方法重写可以决定多态,方法重载决定不了多态)
比如:Parent parent = new Child();类型是Parent,指向Child对象,当使用多态方式调用方法时,首先检查父类中是否有 X() 方法,如果没有则编译错误;如果有,再去调用子类的 X() 方法
强制转换:向下类型转换,转换为指向的对象,如图
指向不一样,不能向下类型转换,还是那句话,指向谁,能转换成谁。如下图,本来指向ChildTwo,就不能转换为ChildOne:
(备注:这种情况,编译的时候不会报错,只会在运行的时候报错,这是一种运行的行为,不是编译的行为)
5. 一共有两种类型的强制类型转换:
a)向上类型转换(upcast):比如说将子类转换为父类。对于向上类型转换,不需要显示指定。
b) 向下类型转换(downcast):比如将父类型转换为子类型,必须要显式指定(必须要使用强制类型转换)。
什么时候需要强制类型转换:子类里面有,父类没有的时候,而需要用子类的方法的时候,需要强制类型转换
例备注:if(args[0].equal("1")),运行时输入什么值,就执行哪个语句,如下例
此例执行 a = new C();
多态待续。。。
- 4. Java 2 SE 方法重写 & 多态
- java SE之方法的重写与重载
- Java方法重写,多态
- 2. Java 2 SE 构造方法 & new
- 3. Java 2 SE 方法重载 & 继承
- 【JAVA SE】8.方法
- java SE 方法,递归
- 方法重写2--java总结
- java 多态,方法重写,方法重载
- JAVA SE初学者常用方法
- 【JAVA SE】14.main方法
- 【JAVA SE】4.数据
- Java SE -- 多态
- 【JAVA SE】21.多态
- JAVA SE Lesson 2
- java SE 增强2
- java SE 加强2
- java-SE-2
- 游戏架构 游戏架构设计(8)
- WINCE 获取第一个SD卡
- ORA-00979: not a GROUP BY expression报错处理
- poj 3658 二分枚举答案。
- WindowsPhone 中 根据公历 获取农历日期数据
- 4. Java 2 SE 方法重写 & 多态
- Leetcode_palindrome-partitioning
- 第五届蓝桥杯初赛-切面条
- 常用CMD命令
- Ubuntu Linux 13.10 中WPS输入法无法跟随显示问题
- 江湖救急篇:slave 复制出错
- ubuntu14.04 firefox flash plugin install
- 随心游项目开始啦~~
- 第九周项目三