C++继承与c#继承
先说c#吧,之前接触的多一点,
c#只允许单继承,也就是子类只能从一个父类中继承
class Person //父类
{
public void playGame() //人的基本行为,
{
Console.WriteLine("人会玩");
}
public void eatFood()
{
Console.WriteLine("人会吃食物");
}
}
class Student:Person //子类继承与父类
{
public void studyWorking()
{
Console.WriteLine("学生要学习");
}
}
在main函数中创建一个student对象,
static void Main(string[] args)
{
Student s = new Student();
s.eatFood();
s.playGame();
s.studyWorking();
Console.ReadKey();
}
父类中的成员方法子类中都具有(不考虑继承方式),不难看出子类中的对象可以访问到父类中的函数,
但是c#中的子类只能从一个父类中继承,不能多继承
看c++继承方式
class Father
{
}
c++在继承的时候需要加访问修饰符,来表示继承的权限
class Son:public Father//公共继承
class Daughter:protected Father//受保护继承
class Wife:private Father//私有继承
解释一下什么叫公共继承,就是其他类的成员,只能访问Son这个类从父类继承过来的公共成员
class Base1
{
public:
int m_A;
protected:
int m_B;
private:
int m_C;
};
//公共继承
class Son1 :public Base1
{
public:
void func()
{
m_A; //可访问 public权限
m_B; //可访问 protected权限
//m_C; //不可访问
}
};
void myClass()
{
Son1 s1;
s1.m_A; //其他类只能访问到公共权限
}
保护继承,就是父类中受保护的属性被继承到子类中以后,其他类只能访问子类中受保护的属性