java之多态性
来源:互联网 发布:手机ps软件 编辑:程序博客网 时间:2024/06/15 13:22
4.8 多态
定义:某一类事物的多种存在形态。
例:动物中猫,狗。
猫这个对象对应的类型是猫类型:猫 x = new 猫();
同时猫也是动物中的一种,也可以把猫称为动物:动物 y = new 猫();
动物是猫和狗具体事物中抽取出来的父类型。
父类型引用指向了子类对象。
多态性简单说就是一个对象对应着不同类型。
例:动物中猫,狗。
猫这个对象对应的类型是猫类型:猫 x = new 猫();
同时猫也是动物中的一种,也可以把猫称为动物:动物 y = new 猫();
动物是猫和狗具体事物中抽取出来的父类型。
父类型引用指向了子类对象。
多态性简单说就是一个对象对应着不同类型。
体现:
父类或者接口的引用指向或者接收自己的子类对象。
作用:
多态的存在提高了程序的扩展性和后期可维护性。
前提:
1. 需要存在继承或者实现关系。
2. 需要有覆盖操作。
好处:
提高了代码的扩展性,前期定义的代码可以使用后期的内容。
弊端:
前期定义的内容不能使用(调用)后期子类的特有内容。
示例1:
运行结果:
示例2:
运行结果:
instanceof :用于判断对象的具体类型,只能用于引用数据类型判断,通常在向下转型前用于健壮性的判断。
示例4:
多态时,成员的特点:
1. 成员变量
编译时:参考引用型变量所属的类中是否有调用的成员变量。有,编译通过,没有,编译失败。
运行时:参考引用型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量。
简单说:编译和运行都参考等号的左边。
示例:
1. 成员变量
编译时:参考引用型变量所属的类中是否有调用的成员变量。有,编译通过,没有,编译失败。
运行时:参考引用型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量。
简单说:编译和运行都参考等号的左边。
示例:
运行结果:
2. 成员函数(非静态)
编译时:参考引用型变量所属的类中是否有调用的函数。有,编译通过。没有,编译失败。
运行时:参考的是对象所属的类中是否有调用的函数。
简单说:编译看左边,运行看右边。
示例:
3. 静态函数
编译时:参考的是对象所属的类中是否有调用的函数。
运行时:参考的是对象所属的类中是否有调用的函数。
简单说:编译和运行看左边。
编译时:参考的是对象所属的类中是否有调用的函数。
运行时:参考的是对象所属的类中是否有调用的函数。
简单说:编译和运行看左边。
示例:
运行结果:
4.9 内部类
定义:
将一个类定义在另一个类的里面,里面那个类就称为内部类(内置类,嵌套类)。
访问特点:
内部类可以直接访问外部类中的成员,包括私有成员。
而外部类要访问内部类中的成员必须要建立内部类的对象。
示例1:
运行结果:
将一个类定义在另一个类的里面,里面那个类就称为内部类(内置类,嵌套类)。
访问特点:
内部类可以直接访问外部类中的成员,包括私有成员。
而外部类要访问内部类中的成员必须要建立内部类的对象。
示例1:
运行结果:
示例2:
运行结果:
内部类的位置:
内部类定义在成员位置上,可以被private、static成员修饰符修饰。被static修饰的内部类只能访问外部类中的静态成员。示例1:
示例2:如果内部类是静态的,内部类成员也是静态的,可以不用创建内部类对象,直接调用。
运行结果:
1、如果内部类中定义了静态成员,该内部类也必须是静态的!
示例:
2、为什么内部类能直接访问外部类中的成员呢?
那是因为内部类持有了外部类的引用,外部类名.this。 示例:
运行结果:
运行结果:
同时可以访问所在局部中的局部变量,但必须是被final修饰的。
示例:
运行结果:
匿名内部类
定义:
就是内部类的简化写法。
前提:
内部类可以继承或实现一个外部类或者接口。
格式:
new 外部类名或者接口名(){覆盖类或者接口中的代码,(也可以自定义内容。)}
简单理解:
就是建立一个带内容的外部类或者接口的子类匿名对象。
什么时候使用匿名内部类呢?
通常使用方法是接口类型参数,并且该接口中的方法不超过三个,可以将匿名内部类作为参数传递。
好处:
增强阅读性。
示例1:
运行结果:
示例2:
运行结果:
示例3:
运行结果:
对象的初始化过程
示例:
运行结果:
0 0
- 胡博君解Java之多态性
- Java基础之多态性
- java之多态性
- java基础之多态性
- Java之多态性
- Java基础知识之多态性
- JAVA面向对象之多态性
- java学习笔记之多态性
- java夯实基础之多态性
- Java之旅(9)多态性
- java之旅 (五)多态性
- java三大特征之 多态性
- JAVA多态性 之动态连接详解
- Java编程基础篇之多态性
- java基础之对象的多态性
- JAVA三大特性之三---多态性
- 黑马程序员——Java之多态性
- Java 学习之 多态性的理解
- Android Studio百度地图开发
- Cordova从零开始插件开发-支付宝插件(二)
- 设计模式之简单工厂模式
- Java——采用DOM4J+单例模式实现XML文件的读取
- RT73 wifi无线网卡驱动移植过程
- java之多态性
- java系统学习(十四) --------常用数据结构
- ocp-125
- 网络编程(4)——HttpURLConnection/HttpClient基本实现
- Android开发者必须深入学习的10个应用开源项目
- ocp-126
- 2048神、上帝以及老天爷
- [深入理解Java虚拟机]第三章 概述:哪些内存需要回收?
- www.