派生与继承
1.数据类型转换
C语言:(int)89.9;
c++ :int(89.9);
2.转换构造函数参数有且只有一个。
第五章 继承与派生
5.1继承与派生的概念
1.继承和派生是类间的一种常用关系。
继承,就是根据一个已存在的类建立一个新的类。新建立的子类从基类那里获得基类的特性,成为类的继承。派生,就是由基类产生新的子类。
继承类叫基类或父类,派生出来的新类叫子类,派生类。
2.单继承:子类只从一个基类继承。会形成一个树状结构。
多重继承:子类从多个基类继承。
5.2派生类的声明方式
1.class 派生类名:继承方式 基类名
{
private://派生类成员
public://派生类成员
protected;//派生类成员
};
派生类包含基类属性和派生类成员属性的综合属性。
此处student有person的功能和派生类的功能。
2.继承方式有三种:private(默认),public(最常用),protected;
派生类也可以被其他类继承。
构造函数和析构函数是不能继承的。
派生类自动具有基类的全部成员,但不具有基类的构造函数和析构函数。
5.3派生类的构成
1.派生类把基类的全部成员接收过来。(会造成冗余,浪费存储空间和执行效率)。
2.调整从基类接受的成员。(如何调整基类成员:通过指定不同的继承方式;通过在派生类中声明一个和基类成员同名的成员,可以覆盖接受的基类成员。)
3.构造函数和析构函数不能继承,需要在派生类中重新定义。
5.4派生类成员的访问属性
1.继承方式:
public;//公有继承(使用最多)
protected;//保护继承
private;//私有继承
2.基类的私有成员仍为基类私有,派生类新增成员不可直接访问它。基类的公用成员和保护成员在派生类中保持原有的访问属性。
可以在派生类中定义函数去访问基类的公有成员,再通过公有成员去访问私有成员(间接访问)。
3.私有继承时,基类的公有成员和保护成员成为派生类的私有成员;保护继承时,基类的公有成员和保护成员成为派生类的保护成员。两种情况中基类的私有成员都仍不能被派生类直接访问。
这里student类内可以直接访问基类的保护成员id,name。
小结:
4.公有成员:派生类内外都可以访问
保护成员:派生类内可以访问,派生类外不能访问,下一级派生也可以访问。
私有成员:派生类内可以访问,派生类外不能访问,下一级派生也不能访问。
不可访问成员:派生类内外都不可访问。