多态总结
来源:互联网 发布:熟shou 知乎 编辑:程序博客网 时间:2024/05/16 08:40
多态的问题理解:
class 孔子爹 {
public int age = 40;
public void teach() {
System.out.println("讲解JavaSE");
}
}
class 孔子 extends 孔子爹 {
public int age = 20;
public void teach() {
System.out.println("讲解论语");
}
public void playGame() {
System.out.println("英雄联盟");
}
}
//Java培训特别火,很多人来请孔子爹去讲课,这一天孔子爹被请走了
//但是还有人来请,就剩孔子在家,价格还挺高。孔子一想,我是不是可以考虑去呢?
//然后就穿上爹的衣服,带上爹的眼睛,粘上爹的胡子。就开始装爹
//向上转型
孔子爹 k爹 = new 孔子();
//到人家那里去了
System.out.println(k爹.age); //40
k爹.teach(); //讲解论语
//k爹.playGame(); //这是儿子才能做的
//讲完了,下班回家了
//脱下爹的装备,换上自己的装备
//向下转型
孔子 k = (孔子) k爹;
System.out.println(k.age); //20
k.teach(); //讲解论语
k.playGame(); //英雄联盟
多态中的成员访问特点:
A:成员变量
编译看左边,运行看左边。
B:构造方法
创建子类对象的时候,访问父类的构造方法,对父类的数据进行初始化。
C:成员方法
编译看左边,运行看右边。
D:静态方法
编译看左边,运行看左边。
(静态和类相关,算不上重写,所以,访问还是左边的)
由于成员方法存在方法重写,所以它运行看右边。
多态的弊端:
不能使用子类的特有功能。
我就想使用子类的特有功能?行不行?
行。
怎么用呢?
A:创建子类对象调用方法即可。(可以,但是很多时候不合理。而且,太占内存了)
B:把父类的引用强制转换为子类的引用。(向下转型)
对象间的转型问题:
向上转型:
Fu f = new Zi();
向下转型:
Zi z = (Zi)f; //要求该f必须是能够转换为Zi的。
- c# 多态总结
- 动态多态总结
- 多态总结
- 多态总结
- 多态总结
- java 多态总结
- 多态的总结
- C++多态总结
- Java 多态总结
- java_多态总结
- java 多态总结
- 多态问题总结
- 多态总结
- java 多态总结
- 多态总结
- Java多态总结
- 多态总结
- c++多态总结
- 自考路之C++大作战(上)
- HttpServletRequest
- 正则表达式中的 .*? 或 .*+ 是什么意思?
- Animation
- Win8.1无法安装msi软件提示2502、2503错误怎么解决?
- 多态总结
- KMP算法/字符串匹配算法
- JAVA单例模式编程详解
- design_pattern_singleton
- 【C++ Primer】【学习笔记】【第九章】顺序容器之:顺序容器的操作
- Linux下面如何安装Django
- Machine Learning PCA
- [Hb-XVII] 计算机的抽象层次-简 使用寄存器 使用内存空间 程序执行过程 使用main函数规定 不定参数函数机制 C
- URAL 1885. Passenger Comfort(数学啊 )