1. 程式人生 > 其它 >C++繼承與c#繼承

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; //其他類只能訪問到公共許可權
}

保護繼承,就是父類中受保護的屬性被繼承到子類中以後,其他類只能訪問子類中受保護的屬性