类的继承
Posted 最初的梦想DW
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的继承相关的知识,希望对你有一定的参考价值。
类的继承
基本概念:一个类从另一个已有的类获得其特性 称为继承
派生:从一个已有的类产生的新的类称为派生
继承和派生其实是从不同胶东来表述,本质是一个事情
父类/子类:已有类为父类,新建类为子类,父类也叫基类,子类也叫派生类
单继承一个类从一个上级继承其特性信息 php为单继承 c++为多继承
访问(权限)修饰符
在类中的成员,三个修饰符
public:公共的
protected:受保护的
private:私有的
public公共的
语法模式:
对象->成员;
类名::成员;
parent代表父类
通常在子类中调用父类的时候使用,多数是使用父类的静态成员 parent代表的是类
构造方法析构方法在继承中的表现
子类中没有定义构造方法时,会自动调用父类的构造方法因此实例化子类时需要按照父类的构造方法形式进行
子类定义了自己的构造方法则不会自动调用父类的构造方法,但可以手动调用
parent::_construct();
重写oberride
重写又叫覆盖,就是将父类继承下来的属性或者方法重新定义--就是重新写
访问控制权限:
上级:public 下级:只能public
上级:protected 下级: protected, public
上级:private 下级:private protected public——实际此情况无意义。
私有的不能覆盖,而是完全当作自己全新的。
最终类final class
通常,一个类没有特别声明的话,则下级类就可以对进行覆盖(重写)*
final function 方法名(){....定义方法....}
最终方法final method
通常,一个方法,如果没有特别声明,则下级类就可以对其进行“覆盖”(重写)。
但是:
如果某个方法不希望被下级类覆盖,就可以对其生命为“最终方法”。
形式:
final function 方法名(){。。。。方法定义。。。。}
设计模式
所谓设计模式,就是一些解决问题的常规做法,是一种较好的经验总结
工厂模式
在实际应用中我们总需要实例化很多类 已得到对象设计一个工厂 其实就是类 这种工厂就是为人们生产各种对象
单例模式
应用中的某种需求:
对于某些类,在使用它的时候,从头到尾(程序运行的开始到结束),都只需要一个对象,就可以完成所有任务。
抽象类抽象方法
抽象类在正常定义类的前面加上关键字就构成抽象类
abstract class 类名{.....类的定义.....}
抽象类的使命是专门做“父类”:子类就继承了它的特性,这就是“规范作用”
抽象类抽象方法细节关系描述
1,如果一个方法定义为抽象方法,则其所在的类必须定义为抽象类。
2,但,一个抽象类中,可以没有抽象方法——但通常意义不大。
3,子类继承自一个抽象类,则子类必须实现父类中的所有抽象方法,除非子类也继续作为抽象类
4,子类实现抽象父类的方法时,访问控制修饰符的范围不能降低,且方法的参数也须一致——其实这就是重写,所以要满足重写的要求
以上是关于类的继承的主要内容,如果未能解决你的问题,请参考以下文章
请教C++高手: 关于类的继承,当子类以public方式继承基类之后,根据继承的规则,基类的所有数据成员和成