php学习15----面向对象---继承

    昨天我们学习了面向对象的原理和基础,今天我们要学习的是面向对象的其中一个特征----继承。

一、继承

  1.继承的基本概念

    将一个类A中的特性信息,传递到另一个类B中,此时就称为,B继承A,A派生出B;

    基本语法:

      

    关于继承的几个基本概念

      继承:一个类从另一个已有的类获取其特性,称为继承。

      派生:从一个已有的类产生一个新 的类;

      父类/子类:已有类为父类,新建类为子类。

      单继承:一个类只能从一个上级类继承其特性信息,php和大多数面向对象的语言都是单继承模式。c++为多继承;

      扩展:在子类中来定义自己的一些新的特性的信息。没有扩展,继承也就没有意义了;

  2.访问控制修饰符

    访问控制修饰符的作用是:用来限制其所修饰成员的可访问性;

      可访问性:就是在代码中使用这样两种语法形式的有效性;

            对象->实例属性或方法

            类::静态属性或方法

      形式:

        class 类名{

          访问控制修饰符   属性或者方法定义;

        }

      访问控制修饰符有3种:

          public:公共的,在所有位置都可以访问;

          protected:受保护的,只能在该类内部或者该类的子类或父类中访问;

          private:私有的,只能在该类内部访问;

    总结:

      public修饰的成员,在哪里都是可以访问的;

      类的内部,可以访问任何级别的成员;

      

      

  3.parent关键词

    parent 表示‘父母’的意思,在面向对象语法中,代表‘父类’;

      其本质上就是代表父类这个类,而不是类的对象;

    其使用方法为 :  parent::属性或者方法    //在这里通常是静态属性或静态方法,但有时候可能是实例属性或实例方法;

      

      

  4.构造方法和析构方法调用上级同类方法的问题

    1.如果一个类中有自己的构造方法,在new的时候就会使用自己的构造方法,如果没有就会使用父级类的构造方法。

    2.析构方法与构造方法类似,同上;

    3.如果一个类中有构造方法和析构方法,也可以手动的去调用父级类的构造方法和析构方法:利用parent::.....

    4.在子类的构造方法中,常常去调用父类的构造方法,以简化对象初始化工作

      

 

  5.覆盖

    将一个类从父类中继承过来的属性和方法“重新定义”----此时相当于子类不想用父类的属性或方法,而是要从新定义。

    覆盖的实现需要:

      对于一个父类,或许其属性的现有数据,子类觉得不适合,而需要有自己的新的描述;或许其方法,子类觉得不合适,需要自己来从新定义该方法中要做的事;

    覆盖有叫“重写”;

      

    重写的要求:

      子类覆盖的属性或方法的访问控制权限不能低于父类的被覆盖的属性或方法的访问控制权限:

        父类:public  子类 :只能是public;

        父类:protected 子类: protected或public;

      子类覆盖父类的同名方法时,参数要与父类保持一致;

    注意:

      父类私有属性不能被覆盖,但子类可以定义自己和父类同名的属性。

      父类的私有方法不能被覆盖,子类也不能定义同名方法;

  6.最终类

    最终类其实就是一种特殊要求的类,要求该类不允许往下继承下去;

      final  class  类名{

        //类内部跟其他类没有区别;

      }

  7.最终方法

    最终方法,就是一个不允许下级类去覆盖的方法!!

      class  类{

        final  function f_name(){......};

      }

  8.设计模式

    什么叫设计模式?

      简单来讲,设计模式就是解决某个问题的一般性代码的经验性总结。

    工厂模式:

      所谓工厂模式,就是这样一个类(工厂类):它可以根据“传递”给他的类名,而去生产出对应的类的对象;

      

    单例模式:

       单利模式就是设计这样一个类,这个类只能创造出一个对象;

      

二.设计一个类,mysql数据库操作类

  设计目标:

    1.该类一实例化,就可以自动连接上mysql数据库;

    2.该类可以单独去设定要使用的连接编码)(set names XXX)

    3.该类可以单独去设定要使用的数据库(use XXX);

    4.可以主动关闭连接;

  上述设计目录,大致相当于如下几行代码:

    $link = mysql_connect("","","");

    mysql_query(‘set names XXX‘);

    mysql_query("use  XXX");

  然后,后面可以执行各种sql语句;  

    

时间: 2024-10-08 19:25:22

php学习15----面向对象---继承的相关文章

OC学习笔记 面向对象 继承与组合

一.基本概念 程序的世界和人类的“对象”世界在思想上是没有设么区别的,富二代继承了父母,自然就拥有了父母拥有的所有资源,子类继承了父类同样就拥有了父类所有的方法和属性(成员变量). 在这里动物是猫类和狗类的父类,黑猫和白猫类是猫类的子类. 继承的好处: (1)抽取出了重复的代码 (2)建立了类和类之间的联系 继承的缺点: 耦合性太强 二.OC中的继承 @interface Animal:NSObject //动物里继承了NSObject,获得NSObject类的方法: @end @interfa

Java学习---3.面向对象--继承和权限控制,重写,继承中的构造方法

1.Java只能支持单继承,不允许多继承.子类自动拥有基类的所有成员. class Students extends school(){} ,父类中私有的方法也会被继承下来,但是子类没有使用权. 内存分析: 2.default类只能被同一个包内部的类访问 super关键字:Java中使用super来引用基类的成分. 重写::equals().其默认定义为两者为同一对象.

PHP学习笔记之继承(面向对象三大特性之一)

今天学习了面向对象的三大特性之一继承 继承:子类可以继承父类的一切 特点就是单继承: 制造一个父类 //继承:子类可以继承父类的一切//特点:单继承 //父类class Ren{ public $name; public $sex; public $yuyan; function Say() { echo $this->name."正在讲话!"; }} //美国人的子类class America extends Ren{ public $ziben; //子类对父类的方法重写 f

.Net学习 第2季02 C#面向对象继承1

.Net 视频学习第2季 C#面向对象 面向对象继承1 查找类的命名空间快捷键:alt+shift+F10 项目A中有类X,要在项目B中使用X的话,首先在项目B的引用当中添加项目A,然后在项目B的代码中添加using A;(假设项目A类X的命名空间就是A)或者在使用X时采用A.X的格式. 记录运行时间 Stopwatch sw = new Stopwatch(); sw.Start(); // 代码 sw.Stop(); Console.WriteLine(sw.Elapsed); Start(

初探C++Primer(15.面向对象程序设计)

最近在恶补OOP相关知识,很遗憾学校的课没选上,于是只能上网购进C++Primer一本,开始重学C++之旅... (壮哉我大ZJU,网购半天到货XDD) 学习路线 7.类->13.类设计者的工具->15.面向对象程序设计 总的来说,C++Primer的章节编排顺序是很合理的.有些教材习惯上来就讲虚函数,继承,恰恰缺乏对有关问题的引导,造成学完后半懂不懂的情况. 7.类 类的特性,成员函数,友元函数,构造函数简介 13.类设计者的工具 拷贝构造函数,拷贝赋值运算符,析构函数,内存管理类,合成拷贝

2015 IOS 学习笔记 面向对象 初始化方法 ——蓝懿教育

今天学习了面向对象以及初始化方法,这个在实际应用中比较重要,也比较抽象,所以要具体在实例中才能理解. ————————面向对象有三大特性—————— 一.封装 封装是对象和类概念的主要特性.它是隐藏内部实现,稳定外部接口,可以看作是“包装”.封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 好处:使用更简单变量更安全可以隐藏内部实现细节开发速度加快 OC中一个类可以继承另一个类,被继承的类成为超类(superclass),继承的

C++学习笔记之继承

一.基类和派生类 很多时候,一个类的对象也“是”另一个类的对象,如矩形是四边形,在C++中,矩形类Rectangle可以由四边形类Quad继承而来,于是,四边形类Quad是基类,矩形类Rectangle是派生类.但是如果说四边形一定是矩形显然不对.几个简单的基类和派生类的例子: 基类                         派生类   食物 米饭.面条.水饺   交通工具 汽车.火车.飞机 国家 中国.美国.西班牙 可以看出,每个派生类的对象都是基类的一个对象,并且一个基类可以有很多派生

大话设计模式学习笔记——面向对象基础

前言 好记性不如烂"笔头"系列--大话设计模式学习笔记 目录 面向对象基础 面向对象基础 什么是类与实例 一切事物皆为对象,即所有的东西老师对象,对象就是可以看到.感觉到.听到.触摸到.尝到.或闻到的东西.准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标识.面向对象编程,英文叫 Object-Oriented Programming,其实就是针对对象来进行编程的意思.类就是具有相同属性和功能的对象的抽象集合.实例就是一个真实的对象.比如我们属于'人'类,而个人就是'人'类

Java学习笔记之继承

一.继承的基础 在Java术语中,被继承的类叫超类(superclass),继承超类的类叫子类(subclass). 举例说明: 1 class Box 2 { 3 public double width; 4 public double height; 5 public double depth; 6 7 //重载构造方法 8 public Box(Box ob) 9 { 10 width = ob.width; 11 height = ob.height; 12 depth = ob.dep

黑马程序员-OC面向对象继承关系和组合关系笔记

继承关系是描述类和类之间的关系,两个类分别称为子类和父类,子类继承了父类,子类就拥有了父类的属性和方法: 继承的关系特点描述出来就是:** "是" **  (例如:学生类 是 人类) 组合关系描述的语句是:**** "拥有" ***  (例如:学生有成绩这个属性,而成绩属性本来就是一个成绩类的对象 ) 继承示例代码: #import <Foundation/Foundation.h> //Animal类的声明 @interface Animal : NS