资讯专栏INFORMATION COLUMN

PHP的类修饰符与访问修饰符

pakolagij / 1645人阅读

摘要:抽象类本身不能被实例化,只有一个类继承了它,并覆盖了它所有的抽象方法,这样我们可以实例化它的子类修饰的类为接口,接口与抽象类有点类似,不过他们的区别是,接口所有的方法都是抽象方法,接口的抽象方法前面没有修饰,成员属性必须为常量。

类修饰符

1.abstract修饰的类为抽象类,如果一个类中含有抽象方法那么这个类就是抽象类(当然一个类中没有抽象方法,我们也可以定义这个类为抽象类),那么什么是抽象方法呢,抽象方法就是没有方法体的方法(没有大括号和里面的内容),抽象方法前面也加上abstract修饰。抽象类本身不能被实例化,只有一个类继承了它,并覆盖了它所有的抽象方法,这样我们可以实例化它的子类

abstract class My{
    abstract function say();
}
//
abstract class My{
     function say(){
        echo "hello";
    }
}


2.interface修饰的类为接口,接口与抽象类有点类似,不过他们的区别是,接口所有的方法都是抽象方法,接口的抽象方法前面没有abstract修饰,成员属性必须为常量。接口引用区别于类继承关键字 extends ,继承只能只是单一性,而接口可以使用关键字 implements 多个引用并用逗号分开。

interface demo { 
const NAME = "常量对象属性"; 
function fun1(); 
function fun2(); //抽象方法。 
} 
class MyPc extends Root implements demo , demo2 , demo3 { 
... 
}

3.final修饰的类为终结类,它不能被继承。

访问修饰符

1.public 公共的方法和属性,能在所有的类中使用


2.static 静态的方法和变量

如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“::”调用,static的属性,在内存中只有一份,为所有的实例共用, 静态方法不能调用非静态属性 。不能使用self::调用非静态属性。

function test(){
static $a=1;
$a*=2;
echo $a."
";
}
test()
test()
test()
//打印结果
//2
//4
//8

静态变量的初始化赋值只有一次,后面的test方法不会再初始化。

3.private 修饰的方法和变量是私有的,只能在本类中调用(在其他的类中实例化本类,是无法调用private修饰的方法和变量)


4.proteced 受保护的方法和变量,只能在本类和本类的子类中使用


5.final 修饰的方法不能被覆盖。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28898.html

相关文章

  • JavaScript => TypeScript 类入门

    摘要:静态属性静态方法目前支持静态方法表示,类属性及静态属性目前作为提案还未正式成为标准。在中,抽象类不能用来实例化对象,主要做为其它派生类的基类使用。不同于接口,抽象类可以包含成员的实现细节。中也是这样规定的抽象类不允许直接被实例化。 尝试重写 在此之前,通过《JavaScript => TypeScript 入门》已经掌握了类型声明的写法。原以为凭着那一条无往不利的规则,就可以开开心心的...

    geekidentity 评论0 收藏0
  • VUE自定义组件中用.sync修饰v-model的区别

    摘要:修饰组件引入子组件新旧值父组件新旧值修饰组件引入子组件新旧值区别只能自己慢慢体会个人感觉用法灵活而只能接受名为为的值两者都需要手动触发方法 .sync修饰组件 vue-03 {{ say }} ...

    YJNldm 评论0 收藏0
  • ES6学习 第五章 正则的扩展

    摘要:前言本章介绍正则的扩展。属性属性表明正则表达式带有标志。行终止符所谓行终止符,就是该字符表示一行的终结。比如,只匹配不在美元符号后面的数字,要写成。前言本章介绍正则的扩展。有些不常用的知识了解即可。本章原文链接:正则的扩展RegExp 构造函数从 ES6 开始,如果RegExp构造函数第一个参数是一个正则对象,并且第二个标志存在且为标志参数,将不再抛出 TypeError ,将使用这些参数创...

    番茄西红柿 评论0 收藏2637
  • Java™ 教程(类的更多方面)

    类的更多方面 本节介绍依赖于使用对象引用的类的更多方面以及你在前面的对象部分中了解到的点运算符。 从方法返回值 方法返回到调用它的代码。 完成方法中的所有语句。 到达return语句。 或抛出异常(稍后介绍)。 以先发生者为准。 你在方法声明中声明方法的返回类型,在方法体内,使用return语句返回值。 声明为void的任何方法都不返回值,它不需要包含return语句,但它可能会这样做,在这种...

    shinezejian 评论0 收藏0
  • TypeScript入门-类

    摘要:可以使用关键字来定义类的静态属性,示例代码如下输出输出抽象类有抽象类的概念,他是供其他类继承的基类,不能直接实例化。抽象类必须包含一些抽象方法,同时也可以包含非抽象的成员。 学习Angular 2 , 《揭秘Angular 2》读书笔记。Angular2 选择 TypeScript 作为其官方最主要的构建语音,这意味着掌握 TypeScript 语音将更有利于高效地开发 Angular...

    longmon 评论0 收藏0

发表评论

0条评论

pakolagij

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<