博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象的三大特性
阅读量:7193 次
发布时间:2019-06-29

本文共 1523 字,大约阅读时间需要 5 分钟。

一、封装

目的:让类更加安全

类的成员变量都要封装,封装的函数前面是public

封装的方法1、成员变量变为private

2、在类里做一个成员方法来访问 

  3、在该方法加限制条件

=18&&$age<=50){ $this->age = $age; }//限制条件 } } $r = new Ren(); //$r->setage(20); $r->setage("zhang"); var_dump($r) ?>

 

上面的例子有个弊端,封装几个成员变量就要写多少成员方法,代码量比较繁冗。

4、魔术方法

=18&&$value<=50){ $this->$name = $value; } } else{ $this->$name = $value; } } } $r = new Ren(); $r->name = "张三"; $r->age = 20;//自动调用__set var_dump($r) ?>

class Ren{		public $name;		public $sex;		private $age;//public----private		public function __set($name,$value){//$name变量名$value变量值			if($name == "age"){				if($value>=18&&$value<=50){					$this->$name = $value;				}			}			else{				$this->$name = $value;				}		}		public function __get($name){			return $this->$name;		}	}	$r = new Ren();	$r->name = "张三";	$r->age = 20;//自动调用__set	$r->age;//自动调用__get	var_dump($r)    ?>

 赋值语句用__set   取值语句用__get

二、继承

概念:子类可以继承父类的一切

特点:单继承(一个子类只能有一个父类,一个父类可以有多个子类)

say(); $r->say(); var_dump($a); var_dump($r);   ?>

 

 

1、重写 override

子类可以对父类的函数重写(子类可以扩展父类没有的内容)

say(); var_dump($r) ?>

 

函数重写2

say(); var_dump($r) ?>

 

2、重载 overload

一般发生在强类型语言中

目的是一个方法实现多个功能

重载的条件: 方法名字相同,参数个数不同,参数个数相同类型不同。

test(1,2); var_dump($r) ?>

 

3、重写的实例

a+$this->b; } } $r = new Suan(); $r1 = new Jia(); $r1->a=45; $r1->b=60; $r1->yunsuan(); ?>

三、多态

当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在调用该方法的时候所表现出的不同,我们称为多态

运行多态

编译多态

编译多态就是重载

多态发生在编译的时候产生了不同就是重载

转载于:https://www.cnblogs.com/navyouth/p/8242618.html

你可能感兴趣的文章
Go语言类型的本质
查看>>
界面主窗体,子窗体的InitializeComponent(构造函数)、Load事件执行顺序
查看>>
java导入导出Excel数据的要点记录
查看>>
汇编2——完整的例子集合
查看>>
TP缓存设计方案解析
查看>>
APIO2010 特别行动队
查看>>
Javascript语言精粹之Array常用方法分析
查看>>
leetcode 304. Range Sum Query 2D - Immutable
查看>>
Session704: Core ML 3 Framework 观后小结
查看>>
springmvc freemarker 页面访问静态类的解决方法
查看>>
[理] virsh 命令
查看>>
Python进阶【第十篇】模块(上)
查看>>
Oracle 官方文档 结构说明(教你如何快速从官方文档中获取需要的知识)
查看>>
jQuery
查看>>
mysql 增删改查最基本用法小结
查看>>
图和图算法
查看>>
网络流学习(转载自ssw 的博客)
查看>>
C# 测试程序运行时间
查看>>
0505.Net 基础班第十七天(GDI绘图)
查看>>
5、SuperSocket 基本配置
查看>>