最近做JAVA课实验,课上没咋听,上机迷茫茫。今天做JAVA实验的继承题,发现自己忘了继承时构造函数传参和相关继承问题了,最近总结一下。
学习了类的继承,当父类与子类中有同名函数和变量时那么程序将怎么执行?
首先明确当基类和子类有同名函数或者变量时,子类依然从父类继承。
先贴父类代码
class father {
public:
/*****同名变量***/
int data;
public:
father() {
data = 111111111;
}
/*****同名函数***/
void print()
{
cout << "这是父类的print函数" << endl;
}
};
再来子类代码
class son :public father {
public:
/*****同名变量***/
int data;
public:
son() {
data = 222222222;
}
/*****同名函数***/
void print()
{
cout << "这是父类的print函数" << endl;
}
/********在子类中访问父类成员函数**********/
void visit()
{
cout << "我是子类,父类中data为:" << father::data << endl;
}
};
那么怎么访问呢,先说方法:
①在子类中访问父类成员属性或方法时,如下图:
即父类名::成员名
②在外部访问父类成员属性或方法时,s为定义好的子类,不懂看上面程序,方法如下图:
下面贴主函数代码
int main()
{
father f;
son s;
/********子类访问父类同名变量**********/
cout << "父类中data为:" << s.father::data << endl;
cout << "字类中data为:" << s.data << endl;
/********子类访问父类同名函数**********/
s.father::print();
/********子类在类中访问父类成员函数**********/
s.visit();
return 0;
}