面向对象三大特性(封装,继承,多态)之多态
在面向对象语言中,接口的多种不同的实现方式即为多态。
多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息将可以产生不同的结果,这种现象称为多态性。
多态案例一:
class employee{//定义员工父类protected function working(){//定义员工工作,需要在子类的实现echo "本方法需要在子类中重载!";}}class painter extends employee{//定义油漆工类public function working(){//实现继承的工作方法echo "油漆工正在刷漆!\n";} }class typist extends employee{//定义打字员类public function working(){echo "打字员正在打字!\n";} }class manager extends employee{//定义经理类public function working(){echo "经理正在开会!";} }function printworking($obj){//定义处理方法if($obj instanceof employee){//若是员工对象,则显示其工作状态$obj->working();}else{//否则显示错误信息echo "Error: 对象错误!";} }printworking(new painter());//显示油漆工的工作 printworking(new typist());//显示打字员的工作 printworking(new manager());//显示经理的工作
多态案例二:
<?php //定义一个形状的接口,里面有两个抽象方法让子类去实现 interface Shape{function area();function perimeter(); } //定义一个矩形子类实现形状接口中的周长和面积 class Rect implements Shape{private $width;private $height;function __construct($width,$height){$this->width = $width;$this->height = $height;}function area(){return "矩形的面积为:".($this->width*$this->height);}function perimeter(){return "矩形的周长为:".(2*($this->width+$this->height));} } class Circular implements Shape{private $radius;function __construct($radius) {$this->radius=$radius;}function area(){return "圆形的面积是:".(3.14*$this->radius*$this->radius);}function perimeter(){return "圆形的周长是:".(2*3.14*$this->radius);} } function printcontent($obj){if($obj instanceof Shape){echo $obj->area()."<br>";echo $obj->perimeter()."<br>";}else{echo "Error:对象错误!";} } printcontent(new Circular(4)); printcontent(new Rect(3,5));?>
多态的实现可以通过继承父类,或是继承接口来实现。
继承父类时,要重载其中的方法。继承接口时,要根据具体的需要,改写抽象方法。
instanceof用来检测一个给定的对象是否属于(继承于)某个类(class)、某个类的子类、某个接口(interface)。如果是则返回true。
面向对象三大特性(封装,继承,多态)之多态相关推荐
- Java面向对象三大特性(封装继承多态)解释及案例
文章目录 包 包基本语法 命名规则 命名规范 导入包实例 访问修饰符 面向对象编程-封装 面向对象编程-继承 super关键词 super和this的比较 方法重写/覆盖 (override) 注意事 ...
- 深入理解Java面向对象三大特性 封装 继承 多态
1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...
- Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态
Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...
- 大数据必学Java基础(四十):面向对象三大特性之一继承(Inheritance)
文章目录 面向对象三大特性之一继承(Inheritance) 一.列举案例说明 1.类是对对象的抽象
- Python OOP:面向对象三大特性(封装、继承、多态)、类属性和实例属性、类方法@classmethod、静态方法@staticmethod、函数和类callable、__call__
一.面向对象三大特性 二.多态 定义:多态是⼀种使⽤对象的⽅式,⼦类重写⽗类⽅法,调⽤不同⼦类对象的相同⽗类⽅法,可以产⽣不同的执⾏结果. 一个父类,可以继承给多个子类,每个不同的子类可以创建多个对象 ...
- java 面向对象三大特性之继承 万字详解(超详细)
目录 前言 : 一.为什么需要继承: 二.什么是继承(Warning : 篇幅较长)? 1.继承概述: 2.子类继承父类之后达到的效果 : ①如何使用继承? ②代码演示 : 3.继承的使用场景: eg ...
- C++面向对象三大特性——封装与信息隐蔽
4.1 封装(实现手段--class) 有意义的事物都可以抽象.在抽象类的时候不要想着代码是怎么实现,而是用自然语言去分析逻辑即可!否则极易出错. 4.1.1 封装的意义 封装是C++面向对象三大特性 ...
- Java面向对象三大特性(封装、继承、多态)
文章目录 前言 一.封装 1. 封装的概念 2. private实现封装 3. getter和setter方法 4.封装的好处 二.继承 1. 继承的概念 2. extends实现继承 3. supe ...
- Java面向对象三大特性之继承多态的预习笔记,are you ready? 面对疾风吧!
文章目录 继承(extends) super关键字 方法重写 instanceof关键字 abstract关键字 接口(interface) 多态 继承(extends) AextendsB A继承了 ...
- C++——面向对象三大特性之继承
文章目录 继承概念 继承的定义 继承的语法格式 继承方式 继承方式的汇总 赋值兼容规则 基类对象和派生类对象的赋值转换 继承中的作用域 派生类的默认成员函数 继承与友元 继承与静态成员 菱形继承 虚继 ...
最新文章
- 从芯片到AI智能芯片,一文了解它的前世今生
- python 素描化图像_python实现图片素描效果
- Project Euler 92:Square digit chains 平方数字链
- PyTorch 1.0 中文文档:数据类型信息
- Android RecyclerView之SnapHelper原理解析(一)
- CAD盗图木马分析与处置策略
- html向下三角箭头,CSS制作三角箭头(兼容IE6)
- BTA12A-ASEMI的IGBT管BTA12A
- Halo博客 -- ③ 本地运行
- 自己写一个调查问卷Web项目 (超详细版)
- 一图看懂信用报告在线查询指南
- Socket 【网络通信 - Socket】
- 计算机网络英语app,学习英语软件哪家强?下个app随时随地学英语
- 初步了解指针------指针的基本概念
- 【JS里面使用var声明变量存在的三个问题】
- RPD快速产品开发全流程详解
- WebGIS和桌面GIS、移动GIS、三维GIS的区别
- 打印机 树莓派安装cpus_用树莓派搭建网络打印机
- linux ssd磁盘格式化工具,使用Linux对Samsung SSD 850 PRO进行分区和格式化
- 程序员总监成长编程九大阶段