浅谈-----多态

**

实现多态

**
一.java面向对象还有一个重要的特点:多态。
1.认识多态
多态一次的通常含义是指能够呈现出多种不同的形式或形态。而在程序设计的术语中,它意味着一个特定类型的变量可以引用不同类型的对象,并且能自动的调用引用的对象的方法,也就是根据作用到的不同对象类型,影响不同的操作。方法重写是实现多态级基础。多态意味着再一次方法调用中根据包含的对象的实际类型(即实际的子类对象)来决定应该调用哪个方法,而不是由用来储存对象引用的变量的类型决定的。当调用一个方法时,为了实现多态的操作,这个方法既是在父类中声明过的,也必须是在子类中重写过的方法。
抽象类不能被实例化。
子类如果不是抽象类,则必须重写抽奖类中的全部抽象方法。
abstract修饰符不能和final修饰符一起使用。
abstract修饰的抽象方法没有方法体。
private关键字不能用来修饰抽象方法。
2.向上转型
子类向父类的转换称为向上转型。
向上转型的语法格式如下。
<父类型><引用变量名>=new <子类型>();
之前介绍了数据类型之间的类型转换,举例如下。
(1)把int型常量或变量的值赋给double型变量,可以自动进行类型转换。
int i=5;
double d=5;
(2)把double型常量或变量的值赋给int型变量,必须进行强制类型转换。
double b=3.14;
int a=(int)b;
实际上在引用数据类型的子类和父类之间也存在着类型转换问题.
将一个父类的引用指向一个子类对象称为向上转型,系统会自动进行类型转换。
此时通过父类引用变量调用的方法是子类覆盖或继承了父亲的方法,不是父类的方法。
此时通过父类引用变量无法调用子类特有的方法。
3.向下转型
前面已经提到,当向上转型发生后,将无法调用子类特有的方法。但是如果需要调用子类特有的方法,可以通过把父类转换为子类来实现。
将一个指向子类对象的父类引用赋给一个子类的引用,即将父类类型转换成子类类型,称为向下转型,此时必须进行强制类型转换。
4. instanceof运算符
在向下转行的过程中,如果不是转换为真实子类类型,会出翔类型转换异常。
多态的运用
多态的优势非常突出:
可替换性:多态对已存在的代码具有可替换性。
可扩充性:多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性,继承性,以及其它特性的运行和操作。实际上新加子类更容易获得多态功能。
接口性:多态胎是父类向子类提供了一个共同接口,由子类来具体实现。
灵活性:多态在应用中体现了灵活多样的操作,提高了使用效率。
简化性:多态简化了应用软件的代码编写和修改过程,尤其是在处理大量对象的运算和操作时,这个特点尤为突出和重要。
在多态的程序设计中,一般有以下两种主要的应用形式。
1.使用父类作为方法的形参
2.使用父类作为方法的返回值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值