面向对象的三大特性:封装,继承,多态。

一、封装:目的:如何做类,让类更安全。

让一些成员变量不能被外界直接被访问。

方法:

1.将成员变量变为private。
2.在类里面做一个成员方法来间接访问。
3.在该方法里面加限制条件
4. 标准情况下每一个成员变量都要做封装。

class Ren{public $name;public $sex;public $birthday;private $age;   //将成员变量变为privatepublic function setage($age){  //在类中做一个成员方法来间接访问if($age>=18 && $age<=50){  //在该方法里面加限制条件$this->age = $age;}}public function getage(){return $this->age;}}$r = new Ren();$r->name = "张三";$r->setage(20);var_dump($r);

为了简化用

魔术方法:

public function __set($name,$valus){if($name=="age"){    if($value>=18 && $value<=50){      $this->$name = $value;}else{
   $this->$name = $vaule;  

}
}
}

public function __get($name){  return $this->$name;}

$r->age =20 //自动调用魔术方法__setecho $r->age;//自动调用魔术方法__get

二、继承
概念:子类可以继承父类的一切。父类起到指导性的作用。
特点:单继承(一个子类只能有一个父类,一个父类可以有多个子类)

关键字: extends

class Ren{public $name;public $sex;public function say(){echo "人在讲话";}}
class China extends Ren{  //有父类的所有内容  public $yuyan;          //扩展自己的内容    public function say(){  //函数重写:子类可对父类的函数重写。
    parent::say();  //调用父类里面的方法    echo "你好";}  public function test(){   //函数重载:同名方法,参数个数不同或类型不同,实现不同功能    echo "测试";}
  public function test($a){    echo "aaaa";}

  
  public function test($a,$b){    echo "bbbbb";}
 
}
$c = new China();
$c->say();

重写:子类可对父类的函数重写。override

重载:一个方法多个功能,因为参数个数不同。方法名相同,参数个数不同。也叫编译多态。overload

多态:当父类引用指向子类实例时,由于子类对父类方法进行了重写,在调用该方法的时候表现的不同,称为多态。也叫运行多态。

转载于:https://www.cnblogs.com/niushuangmeng/p/8257615.html

面向对象三大特性: 封装,继承,多态相关推荐

  1. 深入理解Java面向对象三大特性 封装 继承 多态

    1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...

  2. Java面向对象三大特性(封装继承多态)解释及案例

    文章目录 包 包基本语法 命名规则 命名规范 导入包实例 访问修饰符 面向对象编程-封装 面向对象编程-继承 super关键词 super和this的比较 方法重写/覆盖 (override) 注意事 ...

  3. Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态

    Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...

  4. Java面向对象三大特性之继承多态的预习笔记,are you ready? 面对疾风吧!

    文章目录 继承(extends) super关键字 方法重写 instanceof关键字 abstract关键字 接口(interface) 多态 继承(extends) AextendsB A继承了 ...

  5. Python OOP:面向对象三大特性(封装、继承、多态)、类属性和实例属性、类方法@classmethod、静态方法@staticmethod、函数和类callable、__call__

    一.面向对象三大特性 二.多态 定义:多态是⼀种使⽤对象的⽅式,⼦类重写⽗类⽅法,调⽤不同⼦类对象的相同⽗类⽅法,可以产⽣不同的执⾏结果. 一个父类,可以继承给多个子类,每个不同的子类可以创建多个对象 ...

  6. python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)

    面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...

  7. 大数据必学Java基础(四十):面向对象三大特性之一继承(Inheritance)

    文章目录 面向对象三大特性之一继承(Inheritance) 一.列举案例说明 1.类是对对象的抽象

  8. java 面向对象多态_乐字节Java面向对象三大特性以及Java多态

    ​ 以上就是本次学习的6大任务.我们依次来看. 1 Object类 Object类是所有Java类的根基类. 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类. cla ...

  9. java 面向对象三大特性之继承 万字详解(超详细)

    目录 前言 : 一.为什么需要继承: 二.什么是继承(Warning : 篇幅较长)? 1.继承概述: 2.子类继承父类之后达到的效果 : ①如何使用继承? ②代码演示 : 3.继承的使用场景: eg ...

  10. C++面向对象三大特性——封装与信息隐蔽

    4.1 封装(实现手段--class) 有意义的事物都可以抽象.在抽象类的时候不要想着代码是怎么实现,而是用自然语言去分析逻辑即可!否则极易出错. 4.1.1 封装的意义 封装是C++面向对象三大特性 ...

最新文章

  1. 一个可视化的retrospective网站
  2. 【转载】如何组建一支优秀的数据分析团队?
  3. java画板抽象类_java 中的 抽象方法 抽象类 和 接口有啥瓜葛
  4. Thinking in Java方法签名
  5. 一、快速开始一个 MyBatis项目(详解)
  6. 2018数学建模A题的简单指导
  7. python计算AA制时砍价后大家需要分摊的钱
  8. Windows界面编程:MFC
  9. CAXA2016破解版
  10. mysql 端口关闭了_关闭MySQL的3306端口
  11. 如何快速切换各种pip源
  12. 简单易懂的底层知识 —— 计算机的0和1是怎么产生的?
  13. 【UE】Unreal Engine虚幻引擎自己的入门记录
  14. 切比雪夫不等式的证明
  15. MySQL 2019最全的国家地区代码、手机号正则验证,覆盖191个国家和地区
  16. Html页面中直接显示pdf【一行代码实现】
  17. 面向未来,我们来聊一聊什么是现代化数据架构
  18. 万姓女孩清秀文雅的名字
  19. Google和Edge翻译问题解决方法整理
  20. 【C程序】逻辑判断真假话问题:3人说真话,1人说假话

热门文章

  1. 一个好的组件应该是什么样的?
  2. 阿里云全球发布5大举措!
  3. 揭秘!阿里数据中心大幅降低成本的核心技术:混部技术
  4. java学习笔记:Storm 常用配置
  5. 依赖注入 这样的坑游戏编程要谨慎
  6. Xbox 2021年科隆展发表会将于8月25日凌晨1点开始
  7. 小bat大装逼(▼へ▼メ)
  8. 粉色温馨——HTML框架示例
  9. Postman(使用指南)
  10. firewall防火墙