黑马程序员--多态
来源:互联网 发布:沙城传说翅膀进阶数据 编辑:程序博客网 时间:2024/05/17 02:58
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
多态:理解为事物存在的多种体现形似。
所谓多态,是指一个程序中相同的名字表示不同的含义的情况。面相对象的程序中多态的情况有多种,简单情况下,可以通过子类对父类方法的覆盖实现多态,也可以利用重载在同一个类中定义多个同名的不同方法。
实例一个对象:
猫 m = new猫();
这是类与对象之间的关系,某一种类型对应这种类型的具体实例。当类与类之间产生关系后,实例可以具备其他的类型。
动物 a = new猫();
这就是多态。
1. 多态的体现:
父类的引用指向了自己的子类的对象;
父类的应用也可以接受自己的子类对象。
2. 多态的前提
必须是类与类之间有关系。要么继承,要么实现。
通常还有一个前提:存在覆盖。
3. 多态的好处
多态的出现大大的提高程序的扩展性。
4. 多态的弊端
虽然提高了扩展性,但是只能使用父类的引用访问父类中的成员。
5. 多态的应用
6. 多态的出现在代码中的特点(多态使用的注意事项)
在多态中成员函数的特点:
在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果买有,编译失败。
在运行时期:参阅对象所属的类中是否有调用的方法。
简单总结就是:成员函数在多态调用时,编译看左边,运行看右边
class Fu
{
voidmethod1()
{
System.out.println("fumethod_1");
}
voidmethod2()
{
System.out.println("fumethod_2");
}
}
class Zi extends Fu
{
voidmethod1()
{
System.out.println("zimethod_1");
}
voidmethod3()
{
System.out.println("zimethod_3");
}
}
class DuoTaiDemo
{
publicstatic void main(String[] args)
{
Fuf = new Zi();
f.method1();
f.method2();
//f.method3();
//编译失败,因为父类中没有method3这个方法
}
}
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>
- 黑马程序员_多态
- 黑马程序员_多态
- 黑马程序员_多态
- 24.黑马程序员-多态
- 黑马程序员-多态
- 黑马程序员---多态
- 黑马程序员_多态
- 黑马程序员-多态
- 黑马程序员 多态、重载
- 黑马程序员_java 多态
- 黑马程序员---多态
- 黑马程序员-多态
- 黑马程序员-继承,多态
- 黑马程序员_java多态
- 黑马程序员--多态
- 黑马程序员--多态
- 黑马程序员—多态
- 黑马程序员_多态
- 修改hostname的若干方法
- 二分搜索
- strut标签
- 20131209孤独者之旅05
- Clojure 学习入门(15)—— 条件判断
- 黑马程序员--多态
- 界面化的centos5.5系统 root用户忘记密码解决方案
- 【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现
- Clojure 学习入门(17)—— 异常处理
- iOS应用开发最佳实践:编写高质量的Objective-C代码
- sms 短信接收 续
- 我的android 第23天 - UriMatcher类使用介绍
- 一步一步实现五子棋5
- 趣味横生的程序员搞怪代码注释