【我的Java笔记】多态
来源:互联网 发布:php 免费云空间 编辑:程序博客网 时间:2024/06/07 14:09
多态
1.概念:一个事物在不同时刻体现出的不同状态
2.多态的三个前提条件:
(1)必须存在继承关系
(2)必须有方法重写(子类出现了父类一样的方法声明)
(3)有父类引用指向子类对象(向上转型)
例:Fuf = newZi ( ) ;
注:多态的三个条件缺一补不可!
3.多态的成员访问特点:
(1)成员变量:编译看左,运行看左
(2)成员方法(非静态):编译看左,运行看右
注:由于存在方法重写,故运行的是子类的成员方法
(3)成员方法(静态static):编译看左,运行看左
注:静态方法算不上方法重写,静态方法直接跟类有关!!!
(4)构造方法:还是对象进行初始化,由于是一种继承关系,还是分层初始化
例1:
class Fu{public int num = 10 ;//父类的成员方法public void show(){System.out.println("show Fu...");}//静态方法public static void function(){System.out.println("function Fu....");}}//子类class Zi extends Fu{int num = 20 ;public void show(){System.out.println("show Zi...");}public static void function(){System.out.println("function Zi....");}}//测试类public class DuoTaiDemo {public static void main(String[] args) {//创建父类的对象:多态的形式//有父类引用指向子类对象:向上转型Fu f = new Zi() ;//访问成变量System.out.println(f.num);//调用成员方法:show()f.show() ;//静态方法f.function() ;}}结果:10
show Zi...
function Fu...
4.多态的特点(好处):
(1)提高了代码的维护性(继承保证)
(2)提高了代码的扩展性(多态保证)
5.多态的局限性(弊端):
(1)不能访问子类的特有方法
解决方法:创建子类具体对象(问题:会产生内存溢出现象)
(2)父类的引用强制转换为子类的引用(向下转型)
注:向下转型必须依赖于向上转型
例:Animal a = new Cat ( );//向上转型
Cat c = (Cat) a;//向下转型
c.palyGame( );
2017.10.21
阅读全文
0 0
- 【我的Java笔记】多态
- 我的java笔记
- 我的java笔记
- 我的java笔记
- 我的java笔记
- 我的Java笔记
- 我的JAVA笔记
- 我的Java笔记
- 我的java笔记
- 我的Java笔记
- 我的java学习笔记
- 我的Java学习笔记
- 我的java笔记(集合)
- 我的java笔记(IO)
- 我的java笔记(GUI)
- 我的java学习笔记
- 我学java的笔记
- 我的JAVA学习笔记
- lua函数
- LeetCode 310 minimum height trees
- centos7 redis requires Ruby version >= 2.2.2
- [摩斯密码表]摩斯密码对照表
- window.event详细属性
- 【我的Java笔记】多态
- [TOJ1133]Eeny Meeny Moo 约瑟夫问题
- js实现类
- 贪心算法
- Python利用hadoop Streaming编写的Map-Reduce程序命令运行和本地调试运行
- 2、线程实现的两种方式
- SpringMVC学习笔记
- 使用PyQt来编写第一个Python GUI程序
- 【Tensorflow】 第五节 Ubuntu16.04LTS安装Tensorflow(CPU安装)