面向对象之多态性

多态性:
指在基类中定义的属性和方法被子类继承后,可以具有不同的数据类型或表现出不同的行为,这使得同一个属性或方法在基类及其各子类中具有不同的语义。

定义一个抽象模板,子类通过覆写方法来实现不同的行为

使用方法的重载(overloading)和覆盖(Overriding) 实现类的多态性。
方法重载
在一个类中出现多个方法名相同,参数个数或参数类型不同的方法
根据参数个数或类型来区分具体执行那个方法。
方法覆盖(重写)
指父类和子类之间的关系,子类方法与父类方法名相同,那么子类就不能继承父类的方法,此时成为子类方法覆盖了父类的方法。
通过覆盖可以使一个方法在不同子类中表现出不同的行为。

覆盖原则:
1.子类不能覆盖父类中声明为final 或者static的方法
2.子类必须覆盖父类中声明为abstract 的方法,或者子类也必须声明为abstract
3.子类覆盖父类中的同名方法时,子类的方法声明也必须和父类中被覆盖的方法的声明相同。

时间: 2024-10-29 17:48:20

面向对象之多态性的相关文章

JAVA面向对象的多态性及抽象类和接口

一:Object类Object类是所有Java类的根基类("祖先类")如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类1.toString()方法 Object类中定义有public String toString()方法,其返回值是String类型,描述当前对象的有关信息. 如果直接打印某对象的引用,则默认会调用这个对象的toString()方法,默认打印的内容中包含这个引用所指向的内存地址.可以根据需要在用户自定义类中重写toString()方法.2

面向对象4-3多态性

一.virtual(虚拟的)  override(覆盖) 根据上一篇得知,fly是bird父类,在bird中引用父级中的方法fly1(),返回值为"我可以飞".但是在bird类中,引用父类的fly1()方法不能满足要求,需要返回的输出值为“我可以靠自己的翅膀飞行”.以此类推,在fly的各种子类中,都想表达出子类自身所具有的特征,那么此时,就需要对父类fly的方法进行修改,需要进行设置虚函数(virtual). //父类格式 public virtual 数据类型 名字() { 执行语句

面向对象的封装性和多态性

面向对象之封装性: 1.继承要符合is-a的关系.即"子类is a 父类"——子类是父类.如:卡车是汽车,卡车is a 汽车. 2.父类中如果用Protected修饰符,表示只允许其子类访问,而不允许其他非子类访问: 父类中如果用private修饰符,子类是不能访问的. 3.除了构造方法不能被子类继承外,其他都可以直接被继承.可以用base关键字调用父类的构造函数:语法如下 :base(参数变量名) 使用base还可以调用父类的属性和方法. 注意:子类构造函数中已经定义了这些参数,在b

python运维开发(八)----面向对象(下)

内容目录: 面向对象三大特性之多态性 面向对象中的成员:字段.方法.属性 类的成员修饰符 类的特殊成员 特殊成员方法 面向对象其他 异常处理 设计模式之单例模式 面向对象的多态性 多态性:即指多种形态多种类型 比如在函数中可以定义def func(arg),arg可以为为整型,可以为字符串可以为字典可以为列表等等多种类型,这就是面向对象的多态性. #python中 def func(arg): print(arg) func(1) func('jabe') func([11,22,33]) #p

C++中多态性学习(上)

多态性学习(上) 什么是多态? 多态是指同样的消息被不同类型的对象接收时导致不同的行为.所谓消息是指对类的成员函数的调用,不同的行为是指不同的实现,也就是调用了不同的函数.虽然这看上去好像很高级的样子,事实上我们普通的程序设计中经常用到多态的思想.最简单的例子就是运算符,使用同样的加号“+”,就可以实现整型数之间.浮点数之间.双精度浮点数之间的加法,以及这几种数据类型混合的加法运算.同样的消息--加法,被不同类型的对象—不同数据类型的变量接收后,采用不同的方法进行相加运算.这些就是多态现象. 多

面向对象 思维导图

最近在学习面向对象的过程中深有感触,于是整理了一些思维导图来加深理解. 1.面向对象思想 2.面向对象结构 3.面向对象流程 一些知识点: 1.OO和过程式程序设计的区别:在OO设计中,属性和行为都包含在一个对象中(称为封装),而在过程式程序设计(结构化设计)中,属性和行为是分开的. 2.在OO设计术语中,数据称为属性,行为称为方法. 3.获取方法和设置方法提供了对对象的数据的一种受控访问,获取方法和设置方法有时分别称为访问方法和修改方法. 4.类是对象的模板.当创建一个对象时,称为对象被实例化

面向对象系列三(多态)

面向对象的多态,我们先用生活中的多态来理解.大学的校园四月,是社团活动最紧忙的一个月.届时,学校的相关管理部门会对各社团上交的"社团活动策划案"进行审批后下发.以我曾参加的一个话剧社作为例子,社长接到审批的文书后,会对整个社团组织内部人员进行职权分工,编剧部.后勤部.外联部.秘书部.文艺部所有部门各有分工,分头积极准备工作,大家为了完成共同一部话剧热火朝天地干了起来. 这里审批的"社团活动策划案"同意办活动(一条命令),接到审批文书,来到"社长"

Java实验3 类的多态性和接口

实验3 类的多态性和接口 一.实验目的 理解面向对象的多态性.理解接口和实现接口的类的关系,掌握一个类实现多个接口的声明和使用方法. 二.实验内容 1.程序理解: 接口的应用 //接口的应用 //定义一个PCI接口: interface PCI { void start(); // 定义抽象方法start() void stop(); // 定义抽象方法stop() } // 定义 NetworkCard类实现PCI接口 class NetworkCard implements PCI { //

面向对象特性

/* * this: * 1.可以用来修饰属性,方法,构造器 * 2.this理解为对象 或者正在创建的对象.比如this.name * 3.可以在构造器中通过“this(形参)”:可以用来显示的调用当前类的重载的指定的重载构造器 * 要求:1.在构造器内部 必须在首行 * 2.若一个类中有n个构造器,最多有n-1个构造器中使用了this * * super:可以用来修饰属性,方法,构造器 * * 1)当子类与父类中有同名的属性时,可以通过“super.属性”显示的调用父类中声明的属性 * 若想