一、多态的概念
1.面向对象三大特性:封装、继承和多态。
2.多态是面向对象程序设计(OOP)的一个重要特征,指同一个实体同时具有多种形式,即同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态。
举一个生活中通俗易懂的例子理解多态的现实意义:
小灰灰既是一只狼,同时也是灰太狼的儿子,羊村的学生。
这里灰太狼的儿子和狼都是小灰灰父类的子类。
二、多态存在的前提
1.需要有继承关系
2.需要有方法覆盖
3.父类引用指向了子类的实例
三、多态的特点
1.可替换性(substitutability)。
多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。
2.可扩充性(extensibility)。
多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。
3.接口性(interface-ability)。
多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。
4.灵活性(flexibility)。
它在应用中体现了灵活多样的操作,提高了使用效率。
5.简化性(simplicity)。
多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。
四、多态的转型
多态的转型分为向上转型和向下转型。
E·g:父类Parent,子类Child
父类的引用指向子类对象:Parent p=new Child();
向上转型:多态本身就是向上转型过的过程,即将子类对象地址赋值给父类引用,能够写出通用的代码,做出通用的编程,统一调用标准。
Parent p = new Child();//向上转型,此时,p是Parent类型
向下转型:一个已经向上转型的子类对象可以使用强制类型转换的格式,即由父类型转为子类型。这种强制转型的方法使用得较少。
Child c = (Child)p;//此时,把Parent类型的p转成小类型Child
五、关于多态的实例
摘自:
public class LianXi1_2 {
//使用多态public static void main(String[] args) {//创建灯泡对象RedBulb r1=new RedBulb();GreenBulb g1=new GreenBulb();//创建台灯对象Lamp l1=new Lamp();//给台灯对象的属性赋值l1.b=r1;l1.b=g1;//调用台灯对象的方法l1.on();}class Lamp{//台灯类//灯泡是台灯的一个数据//定义父类类型的成员变量Buib2 b;void on() {if (b!=null) {b.light();}}
}
//抽取子类中共同数据和功能形成父类
abstract class Buib2{abstract void light();
}
//让所有子类继承父类
class RedBulb extends Buib2{//根据子类需求 实现父类方法void light() {System.out.println("红灯泡 发光:红");}
}
class GreenBulb extends Buib2{void light() {System.out.println("绿灯泡 发光:绿");}
}
本文发布于:2024-01-29 08:01:00,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170648646313845.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |