PHP 类的继承 访问修饰符 重写

类的继承:

某些类A具有的某些特性,另一个类B,也具有A类的所有特性并且也有自己的特性,此时我们就可以实现B类使用A类的特性信息并继续添加自己的一些特有的特征信息
  关键字是:extends
基本概念:
   继承:一个类从另一个已有的类获得其特性,称为继承
   派生:从一个已有的类产生一个新的类,称为派生
   也可以理解为:已有类为父类,新建类为子类,父类也叫基类,子类也叫派生类
   一个类只能从一个上一级类继承其特性 叫单继承
   多继承的话 就是继承他父类的父类 也就是爷爷类
访问(权限)修饰符
   public:公共的  protected:受保护的  private:私有的
   1.public:
      用该修饰符 可以在任意位置使用其中包括:
       1.某个类的内部
       2.某个类的外部
       3.某个类的具有具有继承关系的类的内部
     语法形式:
       对象->成员 一般
       类名::成员 静态
   2.protected:
      用该修饰符,可以在当前类或者当前类的上下级具有继承关系的类中访问
   3.private:
      用该修饰符,只能在其所在的类中访问
parent代表父类:
   通常用于在子类中调用父类的成员的时候使用 没有继承关系不能用parent
构造方法析构方法:
   子类中没有定义构造方法的时候,会自动调用父类的构造方法。因此实例化子类时,需按照父类的构造方法的形式进行
   子类定义了自己的构造方法,则不会调用父类的构造方法 但可以手动调用 parent::__construct();
   通常在子类很多时候在构造方法中都应该(需要)去调用父类的构造方法以节省代码,增加可读性
重写 override:
   重写又叫覆盖,就是将从父类继承下来的属性或方法重新定义--- 就是从新写  
   重写必须发生在继承里面
   注意:子类覆盖父类的方法,虽然可以去调用父类的同名方法去完成一定的工作。但不是必须的。也有可能父类的该方法所执行的结果并不适合子类,此时子类就去完全自己写了
   重写的基本要求:
      下级的访问控制权限应该不低于上级的访问控制权限
      上级:public(公共的) 下级只能是 public
      上级:protected(受保护的) 下级只能是 protected , public
      上级:private(私有的) 下级:private protected public  --- 实际此情况无意义 私有的不能覆盖,而是完全当做自己全新的
最终类final class :
   如果某个类不希望对其进行扩展,则可以将其声明为“最终类”
   形式:
         final  class  类名{ 。。。。类定义。。。。}
最终方法 final method:
   如果某个方法不希望被下级类覆盖,就可以对其生命为“最终方法”
   形式:
         final  function  方法名(){。。。。方法定义。。。。}

原文地址:https://www.cnblogs.com/xzz123-/p/9142547.html

时间: 2024-10-11 06:54:23

PHP 类的继承 访问修饰符 重写的相关文章

面向对象的过程、继承、封装、多态;抽象类、访问修饰符的使用、引用类型强制转换、方法重写@override与重载、空指针异常、super关键字

面向对象设计的过程:     发现类-发现类的属性-发现类的方法-优化设计: 封装: private类型的,只可以在本类中使用,当其他类调用此类时,不可使用,因此可以设置setget方法,如下所示: 构造------------------------ 默认有无参构造,若设置了有参构造,则就没有默认的无参构造了,需要自己再添加一个 方法重载------------------- 方法名相同,参数列表不同(类型,数量,顺序不同,与参数名无关): 与返回值,访问修饰符无关 面向对象(OO)的优点--

day4(继承、修饰符、方法的重写、super关键词、继承中的构造方法、object类、对象转型)

1.类的继承(extends)通过继承,子类自动拥有父类的所有成员(成员变量和成员发方法)一个子类只能有一个父类,一个父类可以派生多个子类 2.访问修饰符(private 默认 protected public )对于class的权限修饰只可以用public和defaultdefault只能被同一个包内部的类访问 3.方法的重写(override)在子类中可以根据需要对从父类中继承来的方法进行重写重写方法必须和被重写方法具有相同方法名称.参数列表和返回类型重写方法不能使用比被重写方法更严格的访问

6.18 (继承+(四类访问修饰符+程序集+静态方法))提纲

继承: 一.什么是继承 概念:父亲有的东西,并且允许继承,所有孩子就都会有 一个父类可以拥有多个子类 一个子类只能拥有一个父类 二.父子之间的转换 子类可以转换成父类,这个父类只能转换成之前的子类 子类之间不可相互转换 ----------------------------------------------------------------------------- 1.访问修饰符: 对于跨类访问的一个权限限制 public : 公共的,引用命名空间即可随意访问,最高访问权限. priva

【2017-04-14】命名空间、访问修饰符、封装、继承、多态

一.命名空间 namespace 命名空间名称 如果命名空间一致,才能在他下面访问那些不同的类,如果不一致是没有办法直接访问的. 不同命名空间下都是public访问修饰符,想要调用,得在using处引用命名空间 using .... 是引用的命名空间 二.访问修饰符(写在命名任何东西的最前面) public    公共的,访问权限最高 private    私有的,访问权限最低,只能在类的内部进行访问 protected   被保护的,当前类及他的派生类中进行访问 internal    默认的

20151024_004_C#基础知识(C#中的访问修饰符,继承,new关键字,里氏转换,is 和 as,多态,序列化与反序列化)

1:C#中的访问修饰符 public: 公共成员,完全公开,没有访问限制. private: 私有的,只能在当前类的内部访问. protected: 受保护的,只能在当前类的内部以及该类的子类中访问. internal: 只能在当前项目中访问,在同一个项目中,internal和public的权限是一样的. protected internal: protected + internal权限. 1.1:能够修饰类的访问修饰符只有两个: public / internal 1.2:接口中的成员不允许

【2017-4-14】访问修饰符 封装 继承 多态

1.命名空间/程序集 2.访问修饰符public 公共的 - 访问权限是最高的private 私有的 - 只能在类的内部进行访问 internal 默认的 - 当前命名空间(程序集)下可以访问protected 被保护的 - 当前类及它的派生类中可以访问 3.封装private 数据类型 _名称; //成员变量,字段public 数据类型 名称 //属性{ get{ return _名称; } set{ _名称 = value; }} 还可以有方法 //成员方法 4.继承: 子类:父类一个子类只

访问修饰符private/protected/默认(friendly)protected 方法重写,重载

访问修饰符 本类 同包 子类 其他 private True   False False    False 默认(friendly) True   True False  False protected True True  True  False public True  True  True  True 重载:方法名相同,参数列表(参数数据类型.个数等)不同 重写:有继承才有重写,子类重写方法,方法名.返回值.参数列表相同,访问修饰符不能呢比父类更严格 package com.jredu.c

package,继承,访问修饰符

1.package 包(package),用于管理程序中的类,可用于处理类的同名问题. 1.1定义package的方法 package 包名; package用于定义包,必须写在源文件有效代码的第一句. 1.2编译带有包的源文件 在控制台编译有包的源文件,javac -d 目的位置 源文件位置.如下 1.3.import导包 同一包中的其他类可以直接使用. 如果要使用不在同一个包中的类,需要用import导入. import java.util.Scanner;//导入java.util下的Sc

Java继承和访问修饰符

继承 概念:为了提取两个类中公共代码,可以使用继承抽取重复性的代码到一个公共类中,这个公共的类称为父类(super class).继承于父类的类称为子类(sub class). 关键字     extends 特性:     [1] 单根性.在java中,一个类只能有一个直接父类. [2] 传递性.C继承于B,B继承于A,C具有A的特性和行为. [3]之类拥有非私有的属性和方法    关键字   super [1]表示父类关系,仅仅一个关键字,里面没引用.