Java序谈之多态知识
来源:互联网 发布:java培训一般多少钱 编辑:程序博客网 时间:2024/06/03 11:18
何谓多态?
多态是一种事物的不同表现形态
Java中多态实现的条件是什么?
1、类与类之间存在继承关系
2、子类和父类之间有重写方法
3、父类引用指向子类对象
多态在Java中的体现是什么?
一个父类或许有多个子类,其中都重写了父类的方法,之后父类引用即可直接执行子类复写的方法
多态有什么好处和弊端?
好处:1、基于继承,便于维护代码 2、增强代码的扩展性 3、父类不能调用子类的特殊方法
多态时候的成员变量和成员函数的区别?
成员变量:无论编译还是运行都看父类的变量
成员函数:编译看父类的成员方法,运行看子类的成员方法
代码示例:
public class Demo02多态变量方法调用 {public static void main(String[] args) {Father f = new Son();//用到这两个类,将他们加载进方法区System.out.println(f.num);f.speak();}}class Father{int num = 10;public void speak() {System.out.println("Father 说");}}class Son extends Father{int num = 20;public void speak() {System.out.println("Son说");}}结果是:
10
Father说
多态实例使用代码,向上、向下转型
public static void fun(WuQi w) {w.hit();//判断传进来的参数属于哪个类的 instanceof 可以判断是哪个类的对象 w是否属于刀类if(w instanceof Dao) {Dao dao = (Dao)w;dao.lianDao();}else if (w instanceof Jian){Jian jian = (Jian)w; jian.lianJian();}}}class WuQi{public void hit() {System.out.println("挥舞武器");}}class Dao extends WuQi{public void hit() {System.out.println("挥刀");}public void lianDao() {System.out.println("练刀");}}class Jian extends WuQi{public void hit() {System.out.println("挥剑");}public void lianJian() {System.out.println("耍剑");}}
分析:
向上转型:WuQi a = new Dao( );
向下转型:Dao b = ( Dao )a;
main函数中使用了instanceof关键字,判断new Dao()是否是Dao类的对象
阅读全文
0 0
- Java序谈之多态知识
- JAVA知识之多线程(一):基础知识
- java之多态,
- java之多态
- java学习之多态
- java基础之多态
- Java之多态
- Java学习之多态
- Java学习之多态
- java基础之多态
- Java学习之多态
- Java学习之多态
- JAVA之多态
- java之多态
- java基础之多态
- JAVA基础之多态
- Java学习之多态
- Java学习之多态
- [C] 扫雷不会玩?不存在的,试一下傻瓜式一键扫雷吧...
- LeetCode-35. Search Insert Position
- Reflection2017.12.9
- python+pillow+pytesseract+Tesseract-OCR验证码识别
- 用pygame写游戏时总结出来的一些函数笔记(跟新中)
- Java序谈之多态知识
- 做什么职业,也别做程序员,尤其是java程序员
- 自定义gridview
- django 运行报错:某个class 没有 objects 属性问题?及解决方案。
- Linux_top
- 【BZOJ3262】陌上花开(CDQ分治)
- 图论第四次课
- 【基础算法】万圣节大礼包
- 数据库视频(三)