继承—父类和子类中有相同属性或方法,子类中怎么访问

最近做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;
}
运行结果截图

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值