php中普通方法和静态方法的区别以及抽象类和接口
实例化类产生对象。
class fenbi
{
//普通成员,属于对象
public $length = "10cm";
//静态成员,静态变量,属于类。
public static $color; //普通方法可以调用静态成员,类里面用self调用
function hua(){
echo $this->length;
echo self::$color;
}
//静态方法不能调用普通成员,普通方法可以调用静态成员。
static function hua2(){
echo self::$color;
}
}
总结:普通方法可以调用静态成员,在类里面用self调用,
静态方法不能调用普通成员。
敬爱成员调用方法:用 类名:: //实例化对象调用普通成员
$fb = new fenbi();
$fb->hua();
echo "<br>";
//使用类名+::调用静态成员
fenbi::$color = "red";
fenbi::hua2();
echo "<br>";
$fb2 = new fenbi();
$fb2->hua(); //抽象类关键词:abstract
//特点:不能被实例化,只能被继承
//目的:为了派生子类,控制子类
//用于写基类
abstract class Ren
{
public $name; function speak(){
echo "正在说话";
}
}
//$chinese = new Ren();这是错误的,不能这样,不能被实例化;
class chinese extends Ren{ } //接口
//极度抽象的类
//接口里面不能包含成员变量,只能包含成员方法
//成员方法没有函数体
//接口关键字:interface 命名大写I开头
//接口必须实现里面所有的方法
interface Iusb
{
public function read();
public function write();
}
class mouse implements Iusb
{
function read()
{
}
function write()
{
}
}
重点:
//运行多态:
//当父类引用指向子类实例时,
//由于子类里面对父类的方法进行重写
//所以该引用与调用相应方法时,表现出不同状态。
php中普通方法和静态方法的区别以及抽象类和接口的更多相关文章
- C# 动态方法和静态方法的区别
C# 动态方法和静态方法的区别 (转) 动态方法与静态方法的区别: 1,使用方法上的区别:动态方法,在使用时需要先创建实例,才能调用实例方法,而静态方法则不需要,直接使用即可. 示例代码如下:静态方法 ...
- 接口中的方法都自动的被设置为public,接口中的域被自动设置为public static final
接口中的方法都自动的被设置为public,接口中的域被自动设置为public static final
- PHP中普通方法和静态方法
普通方法(实例方法) 一个类中定义的方法,可以为这个类的所有对象调用的方法.也可以理解为,这个类的所有对象,都各自有自己的一个该方法: 定义形式: class 类名{ function 方法名(形 ...
- 关于java线程锁synchronized修饰普通方法与静态方法的区别
最近研究线程方面问题,关于这个synchronized锁修饰的问题,先是修饰普通方法,然后通过两个线程,各自执行自己对象的锁,发现方法执行互不影响,代码如下: private static int n ...
- Java中sychronized方法与sychronized块区别
一.举几个栗子
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...
- 在C#中interface与abstract class的区别
1)在继承抽象类时,必须覆盖该类中的每一个抽象方法,而每个已实现的方法必须和抽象类中指定的方法一样,接收相同数目和类型的参数,具有同样的返回值,这一点与接口相同. 2)当父类已有实际功能的方法时,该方 ...
- 【转】java中抽象类与接口的区别
转自:http://blog.chinaunix.net/uid-20586655-id-215667.html 含有abstract修饰符的class 即为抽象类,abstract类不能创建实例对象 ...
- Python普通方法、静态方法、类方法
开始 # -*-coding:utf-8-*- # 普通方法,类方法,静态方法的区别 __metaclass__ = type class Tst: name = 'tst' data = 'this ...
随机推荐
- 14 - Log日志
LOG https://www.cnblogs.com/yyds/p/6901864.html logging logging模块提供模块级别的函数记录日志 包括四大组件 1.日志相关概念 日志的级别 ...
- 【书籍连载】《STM32 HAL 库开发实战指南—基于F7》-第一章
从今天起,每天开始连载一章<STM32 HAL 库开发实战指南—基于F7>.欢迎各位阅读.点评.学习. 第1章 如何使用本书 1.1 本书的参考资料 本书参考资料为:<STM32 ...
- C#静态成员和非静态成员
一.C#静态成员和非静态成员 1. C#静态成员和非静态成员 当类中的某个成员使用static修饰符时,就会被声明为静态成员.类中的成员要么是静态成员,要么是非静态成员.一般情况下,静态成员属于整个类 ...
- 前端css盒模型及标准文档流及浮动问题
1.盒模型 "box model"这一术语是用来设计和布局时使用,然后在网页中基本上都会显示一些方方正正的盒子.我们称为这种盒子叫盒模型. 盒模型有两种:标准模型和IE模型.这里重 ...
- 2.vue脚手架项目配置
1.更改网站名: index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo ...
- Objection, 一个轻量级的Objective-C依赖注入框架
简介 项目主页:https://github.com/atomicobject/objection 实例下载: https://github.com/ios122/ios122 Objection 是 ...
- vue中登录模块的插件封装
一个电商城的项目,场景是:在未登录的情况下点击收藏或者加入购物车等操作,执行一个方法如this.$login()来动态插入登录组件. 第一步:写好关于这个登录弹窗的单文件组件 loginBox.vue ...
- IDEA怎么生成UML类图
说之前先说一下Diagram这个单词,意思是图表; 示意图; 图解; [数] 线图的意思. 打开设置 File->Setting或windows下按Ctrl+Alt+S 在搜索框中输入Diagr ...
- js将人民币数字转大写
function numberToUpper(money) { var cnNums = new Array("零", "壹", "贰", ...
- linux redis5.0 集群搭建
一.下载 wget http://download.redis.io/releases/redis-5.0.0.tar.gz 二.解压.编译 #解押到 /usr/local/ 文件夹 tar -zxv ...